Closed tpphu closed 5 years ago
Minh hoa cac van de
Minh hoa kien truc
Minh hoa ve thiet ke db
go run main.go model.go
panic: dial tcp 127.0.0.1:3306: connect: connection refused
goroutine 1 [running]:
main.main()
/Users/tranphongphu/workspace/golang-training/demo-note/main.go:11 +0x1bb
exit status 2
Start Docker
docker-compose up -d mariadb
mysql -uroot -proot -h127.0.0.1
CREATE DATABASE demo_note CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Discussion - How to build a crawler
Database Design
Software scaling
Plugin architect
Dynamic and smart proxy usage
Chỉ có n request đến một domain trên 1 IP trong cùng một thời điểm. Chú ý là không phải request nào cũng có response giống nhau, nên phải tính theo thời gian trả về. Tránh DOS server. Trong một khoảng thời gian t chỉ gọi k request đến domain để không bj chặn. Theo rule của các ông system admin hay làm.
Vì mỗi IP tương đương với một VPS, và quan trọng nữa là có thể proxy sẽ phục vụ nhiều account (nếu mua loại này), thậm chí mỗi server chỉ có thể gởi một lượng request nhất định do VPS có cấu hình thấp như 1-2CPU, và 1-2G RAM. Nên do vậy, tổng số request trên cùng một VPS ở một thời điểm phải thiết kế giới hạn theo con số x nào đó. Nguyên nhân là do vấn đề lệ thuộc vào nhà cung cấp proxy. Công ty cũng không thể tự làm cái này. Bởi vì, rất khó linh hoạt trong việc đổi IP, và mua ở số lượng lớn. Phải đổi proxy dễ dàng, nếu vì code lỗi hay hư mà domain nó chặn cái IPs đó.
Nếu một request đến domain bị lỗi thì phải switch sang proxy khác, tức là cơ chế retry thông qua proxy.