2015-04-17 14 views
5

Tôi dường như không thể tìm thấy thông tin này ở bất cứ đâu hoặc có thể tôi không hiểu. Trong mẫu xuất bản/đăng ký trong RabbitMQ, khi một nhà sản xuất sản xuất một thông điệp như thế nào người tiêu dùng (s) biết có một thông điệp mới trong hàng đợi?RabbitMQ: Trong pub/sub là người tiêu dùng bỏ phiếu hàng đợi cho tin nhắn mới hoặc máy chủ có đẩy tin nhắn không?

Người tiêu dùng có liên tục thăm dò ý kiến ​​hàng đợi để kiểm tra xem có bất kỳ tin nhắn mới nào hay thông báo 'đẩy' trao đổi cho người tiêu dùng nói rằng có tin nhắn mới không?

+0

Xem thêm [this] (http://stackoverflow.com/a/31591953/751579) câu trả lời giải thích cách thức _consuming_ một thông báo hoạt động: máy chủ push và máy khách nhận được một cuộc gọi lại không đồng bộ. – davidbak

Trả lời

4

Người tiêu dùng mở mạng kết nối TCP và kênh đến máy chủ RabbitMQ.

A basic get sẽ yêu cầu máy chủ gửi tin nhắn: tin nhắn được khách hàng kéo từ máy chủ. Nếu không có tin nhắn nào thì trả lời trống sẽ được gửi đến máy khách.

A consume sẽ bắt đầu một tình huống tiêu dùng: máy chủ sẽ đẩy tin nhắn cho khách hàng.

Vì vậy, người tiêu dùng sẽ biết có thông báo vì nó có thể kéo họ (có được) hoặc họ có thể được đẩy tới anh ta (tiêu thụ).

Thông báo 'đẩy' trao đổi cho người tiêu dùng nói rằng có thông báo mới?

Trao đổi được sử dụng để định tuyến đến hàng đợi. Họ đẩy không có gì là người tiêu dùng tiêu thụ từ hàng đợi.

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