一、什麼是訊息佇列?
說之前,先說一下佇列,佇列是一種先進先出的資料結構,常見的應用像: 印表機,就是典型案例
訊息佇列可以簡單理解為:把要傳輸的資料放在佇列中。
把資料放到訊息佇列叫做生產者
從訊息佇列裡邊取資料叫做消費者
二、為什麼要用訊息佇列?
為什麼要用訊息佇列,也就是在問:用了訊息佇列有什麼好處。我們看看以下的場景
1. 解耦
2. 非同步
3. 削峰限流
三 消費者怎麼得到訊息佇列的資料?
消費者怎麼從訊息佇列裡邊得到資料?有兩種辦法:
生產者將資料放到訊息佇列中,訊息佇列有資料了,主動叫消費者去拿(俗稱push)
消費者不斷去輪訓訊息佇列,看看有沒有新的資料,如果有就消費(俗稱pull)
訊息佇列 訊息佇列
輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...
訊息佇列 訊息佇列 kafka
kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...
linux訊息佇列 Linux訊息佇列
訊息佇列,unix的通訊機制之一,可以理解為是乙個存放訊息 資料 容器。將訊息寫入訊息佇列,然後再從訊息佇列中取訊息,一般來說是先進先出的順序。可以解決兩個程序的讀寫速度不同 處理資料速度不同 系統耦合等問題,而且訊息佇列裡的訊息哪怕程序崩潰了也不會消失。最簡單的訊息記憶體的使用流程 ftok函式生...