消息模型

消息模型常用來被處理需要異步處理的場景,消息模型中常用的兩種方式:

1.點對點(P2P)

在P2P模型中,包含概念:消息隊列(Queue)、發送者(Sender)、接收者(Receiver)。

每個消息都被髮送到一個特定的隊列,接收者從隊列中獲取消息。隊列保留着消息,直到它們被消費或超時。

(1)每個消息只有一個消費者(Consumer)(即一旦被消費,消息就不再在消息隊列中);

(2)發送者和接收者之間在時間上沒有依賴性,也就是說當發送者發送了消息之後,不管接收者有沒有正在運行,它不會影響到消息被髮送到隊列;

(3)接收者在成功接收消息之後需向隊列應答成功;

如果需要發送的每個消息都應該被成功處理的話,使用P2P模型。


2.發佈/訂閱(Pub/Sub)

在Pub/Sub模型中,包含概念: 主題(Topic)、發佈者(Publisher)、訂閱者(Subscriber)。

客戶端將消息發送到主題。多個發佈者將消息發送到Topic,系統將這些消息傳遞給多個訂閱者。

(1)每個消息可以有多個消費者;

(2)發佈者和訂閱者之間有時間上的依賴性。針對某個主題(Topic)的訂閱者,它必須創建一個訂閱之後,才能消費發佈者的消息,而且,爲了消費消息,訂閱者必須保持運行的狀態,爲了緩和這種嚴格的時間相關性,有一些框架如JMS允許訂閱者創建一個可持久化的訂閱。這樣,即使訂閱者沒有被激活(運行),它也能接收到發佈者的消息;

如果你希望發送的消息可以不被做任何處理、或者被一個消費者處理、或者可以被多個消費者處理的話,那麼可以採用Pub/Sub模型。


發佈了19 篇原創文章 · 獲贊 9 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章