Câu hỏi ở đâu:Làm thế nào để giới hạn thông lượng với RabbitMQ?
Chúng tôi đang sử dụng RabbitMQ làm hàng đợi nhiệm vụ. Một trong những nhiệm vụ cụ thể - gửi thông báo đến mạng xã hội Vkontakte. Họ api có giới hạn để yêu cầu mỗi giây và giới hạn này dựa trên kích thước ứng dụng của bạn. Chỉ cần 3 cuộc gọi cho ứng dụng với ít hơn 100 nghìn người và cứ tiếp tục như vậy. Vì vậy, chúng tôi cần phải giả tạo giới hạn yêu cầu để họ phục vụ. Bây giờ logic này là ứng dụng dựa. Nó đơn giản trong khi bạn có thể sử dụng chỉ một công nhân cho mỗi hàng đợi như vậy, chỉ cần thiết lập một cái gì đó giống như giấc ngủ (300ms) và được bình tĩnh. Nhưng khi bạn nên sử dụng N công nhân đồng bộ hóa này trở nên không tầm thường.
Làm cách nào để giới hạn thông lượng với RabbitMQ?
Dựa trên câu chuyện ở trên. Nếu có thể đặt kích thước tìm nạp trước không chỉ dựa trên thông điệp mà thời gian dựa trên logic này có thể đơn giản hơn nhiều. Ví dụ: "thông báo qos đến 1 mỗi lần tìm nạp không nhanh hơn sau đó 1 lần tính bằng giây" hoặc cứ tiếp tục như vậy.
- Có điều gì tương tự không?
- Có thể là chiến lược khác về điều này?
Bạn có sử dụng N người tiêu dùng vào cùng một hàng đợi không? Bạn có cần "lên lịch" thêm một hàng nữa không? – Gabriele
Có, N người tiêu dùng trên cùng một hàng đợi. Nó phải được loại bỏ theo hàng đợi. – misterion