Như bạn có thể đọc trên chuỗi danh sách gửi thư RabbitMQ http://rabbitmq.1065348.n5.nabble.com/RabbitMQ-scalability-design-question-td28323.html, giải pháp mà tôi đưa ra là triển khai mẫu người tiêu dùng cạnh tranh (nhiều người tiêu dùng trên hàng đợi) khi phát hiện một thông báo đặc biệt (dừng cờ) tin nhắn cho một trao đổi chủ đề.
Thông báo dừng này được người tiêu dùng "chính" cho hàng đợi bắt đầu bỏ phiếu cho một Zookeeper (thông qua người quản lý) cho đến khi tất cả trẻ em của một zkNode ceratain đã bị xóa (sử dụng Zookpeer như là đăng ký của người tiêu dùng xếp hàng trong trường hợp này). Khi tất cả người tiêu dùng đã hoàn thành giai đoạn dừng của họ, người tiêu dùng "chủ" thực hiện một số nhiệm vụ và kích hoạt lại người tiêu dùng hàng đợi ban đầu gửi tin nhắn RESTART đến trao đổi chủ đề (nơi mỗi người tiêu dùng lắng nghe với hàng đợi chuyên dụng).
Tôi hy vọng điều này có thể giúp (hoặc "truyền cảm hứng") người khác ..
Từ những gì tôi hiểu hàng đợi không thể tách giữa các máy khác nhau, một hàng đợi đơn chỉ cư trú trên một nút duy nhất (do đó, một hàng đợi duy nhất không có thể mở rộng rất nhiều) .. Tôi có sai không? – user2539645
Đúng vậy, hàng đợi tồn tại trên một nút (nhưng có thể được nhân đôi với một nút khác). Thông điệp của bạn ước tính kích thước và lưu lượng? – pinepain
Thực tế là thứ gì đó sẽ được đánh giá trong những ngày tiếp theo .. Tôi hy vọng hàng terabyte dữ liệu sẽ đến hàng giờ, vì vậy tôi nên mong đợi một hệ thống tải rất nặng .. Có thể giải pháp tốt hơn là tạo một trao đổi mới thay vì xếp hàng và thêm hàng đợi (yêu cầu vào cụm) khi tải phát triển .. bạn nghĩ sao? Vấn đề là: không trao đổi tạo hàng đợi mới đồng đều trên các nút (như vòng xoay)? – user2539645