2013-02-07 27 views
7

Tôi đang tìm kiếm một số lời khuyên về cách cấu hình tốt nhất các trao đổi RabbitMQ của tôi.RabbitMQ và trao đổi chủ đề xoay vòng

Tôi đang cố gắng sử dụng trao đổi chủ đề theo phương pháp xoay vòng. Mỗi người tiêu dùng có hàng đợi có tên riêng (duy nhất) gắn liền với một trao đổi chủ đề. Tôi muốn trao đổi thông điệp vòng tròn cho từng hàng tiêu dùng cho chủ đề "giống nhau" - ví dụ: giả sử *.log.

Tôi đã thử nhiều kết hợp và dường như chỉ có thể gửi tin nhắn đồng thời đến hàng đợi của người tiêu dùng có nghĩa là tôi đang xử lý thông báo hai lần, một lần trong mỗi người tiêu dùng.

Để rõ ràng, tôi cũng có một trao đổi fanout, mà tôi sử dụng để "kiểm soát" người tiêu dùng (bắt đầu, dừng vv). Điều này sẽ vẫn được duy trì ở bất kỳ kết quả nào.

Bất kỳ hướng dẫn nào về cách tốt nhất để đạt được kết quả đã nêu sẽ là tuyệt vời.

+3

Tại sao bạn muốn làm tròn tin nhắn? nếu bạn muốn phân phối công việc thì hãy bơm tất cả vào một hàng đợi và có nhiều người tiêu dùng "đăng nhập tệp" đọc từ hàng đợi đó ... – kzhen

+0

Tìm cách để tìm ra điều tương tự. bạn đã tìm thấy giải pháp nào cho điều này? – YaOg

+0

Tôi đã giải quyết điều này bằng cách sử dụng các liên kết e2e (trao đổi để trao đổi). http://stackoverflow.com/a/39577177/67065 – Raine

Trả lời

10

Mỗi người tiêu dùng có riêng của mình (duy nhất) có tên hàng đợi gắn liền với một trao đổi chủ đề

Bí quyết là để cho mỗi nhân viên/người tiêu dùng mà bạn muốn làm tròn-robin giữa để thiết lập một hàng đợi tên và tất cả đều sử dụng cùng một hàng đợi thay vì tạo hàng đợi của riêng họ.

Vì vậy, bạn có thể tạo hàng đợi có tên gọi là "nhật ký" cho tất cả các nhân viên "đăng nhập". Bạn sẽ tạo một hàng đợi có tên khác để nói "foo" cho tất cả các công nhân "foo". Yêu cầu sẽ được phân phối vòng tròn cho tất cả người tiêu dùng nhìn vào cùng một hàng đợi.

Các vấn đề liên quan