JMS消息模型
1:P2P(Point to Point)點對點模式
P2P模式包含三個角色:消息隊列,發送者,接受者。
每個消息都被發送到一個特定的隊列,接受者從隊列中獲取消息,隊列保留著消息,直到他們被消費或者超時。
P2P特點:
- 每個消息只有一個消費者(即一旦被消費,消息就不再在消息隊列中)。
- 發送者和接受者之間在時間上沒有依賴性,也就是說當發送者發送了消息之后,不管接受者有沒有正在運行,它不會影響到消息被發送到隊列
- 接收者在成功接收消息之后需向隊列應答成功
如果希望發送的每個消息都會被成功處理的惡化,那么需要P2P模式。
2:Publish/Subscribe(Pub/Sub)發布訂閱模式
Pub/Sub模式包含三個角色:主題,發布者,訂閱者。
對個發布者將消息發布到主題,系統將這些消息傳遞給多個訂閱者。
Pub/Sub的特點:
- 每個消息可以有多個消費者
- 發布者和訂閱者之間有時間上的依賴性,針對某個主題的訂閱者,它必須創建一個訂閱之后,才能消費發布者的消息
- 為了消費者,訂閱者必須保持運行狀態
為了緩和這樣嚴格的時間相關性,JMS允許訂閱者創建一個可持久化的訂閱,這樣,即使訂閱者沒有運行,它也能接收到發布者的消息。
如果希望發送的消息可以被多個消費者處理的話,那么可以采用Pub/Sub模型。
總結
- 上一篇: MQ应用场景
- 下一篇: synchronized 和 volat