消息隊列包括兩種模式,點對點模式(point to point, queue)和發佈/訂閱模式(publish/subscribe,topic)
1、點對點模式
點對點模式下包括三個角色:
消息隊列
發送者 (生產者)
接收者(消費者)
消息發送者生產消息發送到queue中,然後消息接收者從queue中取出並且消費消息。消息被消費以後,queue中不再有存儲,所以消息接收者不可能消費到已經被消費的消息。
點對點模式特點:
- 每個消息只有一個接收者(Consumer)(即一旦被消費,消息就不再在消息隊列中);
- 發送者和接收者間沒有依賴性,發送者發送消息之後,不管有沒有接收者在運行,都不會影響到發送者下次發送消息;
- 接收者在成功接收消息之後需向隊列應答成功,以便消息隊列刪除當前接收的消息;
2、發佈/訂閱模式
發佈/訂閱模式下包括三個角色:
角色主題(Topic)
發佈者(Publisher)
訂閱者(Subscriber)
發佈者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者。
發佈/訂閱模式特點:
- 每個消息可以有多個訂閱者;
- 發佈者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創建一個訂閱者之後,才能消費發佈者的消息。
- 爲了消費消息,訂閱者需要提前訂閱該角色主題,並保持在線運行;