feature
scenario
kafka
rabbitmq
備註pub-sub 發布訂閱模型√√
推拉消費
consumer消費訊息的動作方式。
pull
push/pull
push更關注實時性。pull更關注消費者消費能力。
延遲消費
producer產生一條訊息後,並不希望立刻被消費掉。x√
高階需求。
consumer group
同一條message能同時被多個消費組消費,但同一group中,一條message只會被乙個consumer消費√√
mafka: 不需要在管理平台配置。 rabbitmq:增加需要配置,涉及到內部資料冗餘。
訊息tag(filter)
以過濾出tag為keyword的messagexx
訊息回溯
從歷史中的某個位置重新拉取訊息xx
只對拉模式,推模式不考慮回溯,支援時間維度offset
事務性mq內部邏輯,訊息狀態是否一致x√
和訊息中介軟體內部實現相關。
優先順序訊息優先順序,consumer優先消費高優先順序訊息。x√
染色追蹤訊息在mq中的具體耗時xx
本地讀優化
producer\consumer 不在同一機房。mq搭建在p端,c端會存在跨機房訪問的問題。xx
使用資料同步工具,將p所在機房資料同步到c所在機房的集群。
doubt message(訊息追蹤)
跨公司,異構系統間,訊息狀態追蹤。xx
訊息積壓
沒有被消費的訊息在mq中堆積√√
支援程度的區別,不同mq會存在不同。
負載均衡
1:防止單點 2:c端壓力lb在mq各節點上。√√
rmq:多集群做負載
支援的訊息大小
每條訊息的大小
無限制無限制
需要對訊息大小做限制,降低系統不確定性。
定期**訊息
mq中的訊息一旦被消費後,可以被刪除,空間**。√√
消費語義
方式分別為:1、最多消費一次 2、最少消費一次3、僅消費一次22
業務方消費端做冪等
對全域性序支援
訊息在全域性保持時序一致xx
設計複雜度原因,不考慮支援
備註:「√」 表示目前系統已主持
「x」 表示系統不考慮支援該特性
訊息佇列 訊息佇列
輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...
訊息佇列 訊息佇列 kafka
kafka是乙個分布式的基於發布 訂閱模式的訊息佇列,主要用於大資料實時處理領域。要理解kafka首先要有分布式的概念,要有訊息佇列的概念。分布式系統最大的優勢就是解耦和削峰,這種情況下,a系統生成了乙個訊息,b系統非同步獲取,那麼就需要乙個存放訊息的訊息佇列 mq 相比較傳統的訊息佇列,訊息被消費...
linux訊息佇列 Linux訊息佇列
訊息佇列,unix的通訊機制之一,可以理解為是乙個存放訊息 資料 容器。將訊息寫入訊息佇列,然後再從訊息佇列中取訊息,一般來說是先進先出的順序。可以解決兩個程序的讀寫速度不同 處理資料速度不同 系統耦合等問題,而且訊息佇列裡的訊息哪怕程序崩潰了也不會消失。最簡單的訊息記憶體的使用流程 ftok函式生...