訊息佇列的模式

2022-09-04 22:06:19 字數 795 閱讀 2239

一.簡介

訊息佇列包括兩種模式,點對點模式(point to point queue)和發布/訂閱模式(publish/subscribe,topic)。

二.點對點模式

點對點模式包括三個角色:訊息佇列、傳送者(生產者)、接收者(消費者)。

訊息傳送者生產訊息傳送到queue中,然後訊息接收者從queue中取出並且消費訊息。訊息被消費後,queue中不再有儲存,所以訊息接收者不可能消費到已經被消費的訊息。

點對點模式特點:

1.每個訊息只有乙個接收者(consumer),一旦被消費,訊息就不再存在於訊息佇列中。

2.傳送者和接收者間沒有依賴性,傳送者傳送訊息之後,不管有沒有接收者在執行,都不會影響到傳送者下次傳送訊息。

3.接收者在成功接收訊息之後需要向佇列應答成功,以便訊息佇列刪除當前接收的訊息。

三.發布/訂閱模式

發布/訂閱模式下包括三個角色:角色主題(topic)、發布者(publisher)、訂閱者(subscriber)。

發布者將訊息傳送到topic,系統將這些訊息傳遞給多個訂閱者。

發布/訂閱模式特點:

1.每個訊息可以有多個訂閱者。

2.發布者和訂閱者之間有時間上的依賴性。針對某個主題(topic)的訂閱者,它必須建立乙個訂閱者之後,才能消費發布者的訊息。

訊息佇列的常見模式

push即服務端主動傳送資料給客戶端。在服務端收到訊息之後立即推送給客戶端。當 producer 發出的訊息到達後,服務端馬上將這條訊息投遞給 consumer。客戶端連線到broker之後,啟動乙個執行緒,這個執行緒的任務就是迴圈呼叫方法從broker中拉取相應的訊息至本地。如果是非同步方法呼叫,...

訊息佇列 訊息佇列

輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...

訊息佇列 訊息佇列 kafka

kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...