Thảo luận hệ thống phân phối traffic cho web

Discussion in 'Thảo Luận Chung' started by Nguyen Son, Jul 8, 2021.

  1. Nguyen Son

    Nguyen Son Sơ Nhập Giang Hồ

    Hi các bác,
    Tình hình hiện tại em gặp chút sự cố về vấn đề như sau mong các bác thảo luận và tư vấn ạ:
    Bài toán em cần giải:
    + Em có 1 nguồn traffic từ rất nhiều nguồn bơm traffic qua 1 URL
    + Em muốn từ nguồn này phân phối ra nhiều domain(mỗi domain 1 GA), mong muốn quyết định mỗi domain 1 traffic cụ thể (lý do vì tránh limit thì GA mới bơm ít, tăng dần... và test GA bài eCPM cao thì sẽ tập trung traffic vào)
    + Server hiện tại em đang dùng Vultr gói 12$/1 tháng, các site qua Cloudflare
    Phương án hiện tại:
    + Em dựng 1 URL (php+ mysql) hứng traffic từ các nguồn khác nhau trên, bên trong em xử lý việc quyết định cho traffic đó vào domain nào và tăng giá trị nó lên 1 (bằng việc random trong list domain còn được phép thêm traffic). Khi các domain đủ traffic sẽ auto đổ vào 1 site to nhất không lo về traffic.
    + Do đặc thù nguồn traffic của em có thể đổ 5-10k traffic cùng 1 lúc (10k cc) nên việc xử lý đọc ghi với mysql của em bên trên sẽ bị nghẽn gây treo server. Em check CPU, Disk, Network thỉnh thoảng vọt 120% rồi lại xuống trung bình 20-25% (ngày tầm chục lần)
    + Sau em còn muốn phân bổ traffic theo country vào từng domain cho hiệu quả hơn...
    Hướng giải quyết tiếp theo em đang nghiên cứu:
    + Tách phần điều phối traffic URL sang một server khác
    + Code lại phần điều phối bằng giải pháp khác (có thể tốt hơn) như MongoDB + NodeJS
    + Đầu ngày chạy lệnh Gen sẵn ID domain cần đổ, khi điều phối chỉ việc bốc ra để trỏ đến (không phải ghi dữ liệu đếm nữa)....

    Quãng trước thì cái cách cũ em làm cảm thấy ok, nhưng traffic lớn dần lên thì hiệu suất không còn đảm bảo nữa. Em trình bày có thể không được tốt, chắc sẽ có chỗ chưa rõ, mong các bác thông cảm. Nếu được thì bày thêm cho em phương án để xử lý ạ.
    Em cám ơn!
     
  2. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Chưa có site nào vượt quá 2k cc nên không biết xử lý ra sao với 10k cc. Ngồi hóng các cao nhân để học tập kinh nghiệm {please}{please}{please}
     
  3. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Nginx sẽ làm được hết e nhé.
    --- Double Post Merged, Jul 8, 2021, Original Post Date: Jul 8, 2021 ---
    A nghi chủ thớt chơi link rút gọn kiếm tiền em ah. Trước đây a cũng chơi. Chia traffic qua các acc gà để ăn nhỏ cho chắc. :D
     
    Nguyen Son likes this.
  4. Nguyen Son

    Nguyen Son Sơ Nhập Giang Hồ

    Thanks anh. Để em nghiên cứu anh bạn Nginx xem. Chia sẻ thật là em không chơi link rút gọn ạ. Còn việc chia ăn nhỏ thì buộc phải chia ra cho chắc vì đùng cái site to dính limit đau đầu lắm ạ.
     
  5. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    ok e, cứ nghiên cứu đi. Nếu bí quá mang cafe đến nhà a, a chỉ cho nhanh. :D
     
  6. bmt

    bmt Sơ Nhập Giang Hồ

    Nếu tập trung vào hiệu suất thì theo mình dùng OpenResty là ổn nhất. Nó là giải pháp Nginx++
     
  7. sincos

    sincos Bang Chúng

    Nếu chỉ cần phân phối traffic mà ko cần thuật toán và database thì đúng như bác @xmenvn2510 nói đó. Dùng nginx split traffic - có điều chỉnh weight cho từng site đích.

    Tuy nhiên như bạn nói thì có cả php script và db chắc là còn thống kê và tính toán dựa trên IP, Country, User-agent, Referrer.... thì nó phức tạp hơn 1 chút. Mình không biết độ phức tạp của nó đến đâu.... nhưng bạn hoàn toàn có thể rút ngắn độ phức tạp xuống 1 và dùng giải pháp Openresty như @bmt hoặc code khéo dùng thêm memcached chẳng hạn.

    Nói chung là làm dc.
     
  8. Cái bang

    Cái bang Sơ Nhập Giang Hồ

    Nhanh nhất thì dùng worker của cloudflare.
     
  9. Nguyen Son

    Nguyen Son Sơ Nhập Giang Hồ

    Thanks các bác, em check thì nginx không giải quyết được triệt để nhu cầu của em. Có lẽ em thử build lại bằng Nodejs-Mongo xem ok không, vì trước em dùng tốt độ nó khá tốt.
     
  10. bmt

    bmt Sơ Nhập Giang Hồ

    Giải pháp dùng nginx hay OpenResty mình nói bên trên là kết hợp giữa (Nginx + Redis + Lua Script). Còn 1 mình nginx thì ko làm được là đúng rồi.
    Bạn dùng nodejs thì có thể cân nhắc giữa Redis và Mongo. Riêng mình thì thấy Redis sẽ cho hiệu suất tốt hơn :)
     
  11. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Lót dep hóng.{big_smile}
     
    Last edited: Jul 8, 2021
  12. bmt

    bmt Sơ Nhập Giang Hồ

    Bác xmen có giải pháp dùng mỗi nginx thì thông não cho mọi người cái. Chứ cài linh tinh lại phải học đủ thứ cũng mệt :)
     
  13. xmenvn2510

    xmenvn2510 Moderator + MiddleMan Staff Member

    Ah, a chém gió ý mà. {big_smile}. Không có gì đâu em nhé. Em cứ trình bày cách của em xem sao. Biết đâu lại ổn.
     
  14. hvmedia

    hvmedia Tân Thủ Thôn

    Thực ra mình chỉ quan tâm đến mỗi GA, giờ vẫn chơi được kiểu này thì phải nói GA có họ hàng với bác thớt rồi!!!
     
  15. ducanhtian

    ducanhtian Sơ Nhập Giang Hồ

    Thớt ăn dc $ của GA qua cách này dc cũng tài, đây bỏ mỗi cái link trên fanpage có tầm hơn trăm ông nhẩy vào cái hôm sau báo limit GA :)).
     
  16. Thanh Nguyen

    Thanh Nguyen Bang Chúng

    Thế nên mới cần phải chia ra nhiều domain kìa. Con này limit thì còn con khác. Kiểu gì cũng có ăn mà
     
  17. Nguyen Son

    Nguyen Son Sơ Nhập Giang Hồ

    Đối với fb em thấy có bác làm vẫn tốt với điều kiện GA đã pin pay nhiều lần.
    Dàn site này em không làm với fb nhưng vẫn chia nhỏ và tăng dần traffic từng site, cứ 2 hôm em lại cho tăng 20% traffic. Cách này hiện tại thấy ổn với 5 site mới không limit tí nào, tháng này đủ minpay. Em đang làm theo công thức 100$->300$->700$->kéo thoải mái.
    Chuẩn rồi bác, thay chân nhau liên tục, con nào limit thì để 500 visit/1day để chờ nó thả ạ.
    Chia sẻ với bác, mỗi GA em đặt trên 1 vps free azure, chả mấy khi login vào, report hàng ngày cho gửi tự động tới email. Chưa thấy chết multil.
     
    hvmedia and ducanhtian like this.
  18. Tạ hơi nặng

    Tạ hơi nặng Bang Chúng

    Report gửi hàng ngày ntn bác nhể
     
  19. ducanhtian

    ducanhtian Sơ Nhập Giang Hồ

    Thế 5 sites chơi chung 1 GA à, sao không chia GA ra cho đỡ nguy hiểm.
     
  20. Nguyen Son

    Nguyen Son Sơ Nhập Giang Hồ

    Trong phần report bác mò có phần tạo báo cáo schedule gửi hàng ngày để theo dõi đó bác.

    Mỗi site 1 GA bác.