初識訊息佇列

2022-10-10 10:42:09 字數 441 閱讀 8964

一、什麼是訊息佇列?

說之前,先說一下佇列,佇列是一種先進先出的資料結構,常見的應用像: 印表機,就是典型案例

訊息佇列可以簡單理解為:把要傳輸的資料放在佇列中。

把資料放到訊息佇列叫做生產者

從訊息佇列裡邊取資料叫做消費者

二、為什麼要用訊息佇列?

為什麼要用訊息佇列,也就是在問:用了訊息佇列有什麼好處。我們看看以下的場景

1. 解耦

2. 非同步

3. 削峰限流

三 消費者怎麼得到訊息佇列的資料?

消費者怎麼從訊息佇列裡邊得到資料?有兩種辦法:

生產者將資料放到訊息佇列中,訊息佇列有資料了,主動叫消費者去拿(俗稱push)

消費者不斷去輪訓訊息佇列,看看有沒有新的資料,如果有就消費(俗稱pull)

訊息佇列 訊息佇列

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

訊息佇列 訊息佇列 kafka

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

linux訊息佇列 Linux訊息佇列

訊息佇列,unix的通訊機制之一,可以理解為是乙個存放訊息 資料 容器。將訊息寫入訊息佇列,然後再從訊息佇列中取訊息,一般來說是先進先出的順序。可以解決兩個程序的讀寫速度不同 處理資料速度不同 系統耦合等問題,而且訊息佇列裡的訊息哪怕程序崩潰了也不會消失。最簡單的訊息記憶體的使用流程 ftok函式生...