tpphu / golang-training

Golang for Backend Developer with Nordic Coder
https://nordiccoder.com/khoa-hoc/golang-for-backend-dev/
132 stars 50 forks source link

Xây dựng dự án open source về Proxy cho bài toán crawler #26

Closed tpphu closed 5 years ago

tpphu commented 5 years ago

Các giải pháp chung là: 
Mình sẽ làm một service sao cho:


  1. Mỗi một ip/proxy chỉ gọi đến một domain nào đó tại một thời điểm (concurrent) là n request (thường an toàn thì n = 1)


2. Mỗi một proxy chỉ cho phép tại một thời điểm, chỉ được gọi tối đa k request, vì proxy được nhà cung cấp bán cho nhiều thằng, gọi nhiều nó sẽ không bán cho mình nữa (k có thể bằng 10,20,50, tùy mình test)


  1. Mỗi một domain, chỉ cho phép gọi m request đến nói trong cùng một thời điểm, vì để tránh DDOS cái website đó, gọi nhiều nó có thể chết, không phải web nào cũng mạnh như vnexpress
Em có thể viết cái proxy này dưới dạng claim/release

Nếu lấy cái proxy đó xài thì đánh dấu là lấy nó ra, để gọi cho domain là gì?
Thì em sẽ làm được thuật toán như vậy.
Không cần cao siêu đâu.


Còn design có thể dùng http hoặc rpc (để tăng tốc communicate)
Ve nguyen tac minh design 2 diem: 
- findAValidProxy(domain string)
 
- releaseProxy(proxy string, domain string)
findAndClaimAValidProxy(domain string)



> Cau hinh cho domain
thi minh lam file *.yml
1.


> Cau hinh cho file proxy



=> Khi ma khong co release, hoac la destination khong response ve


tpphu commented 5 years ago

Ai đăng ký thì trả lời ở đây nha.

dantn93 commented 5 years ago

Em đăng ký làm cái này ạ (Trần Ngọc Đản)