訊息佇列探秘 Kafka RabbitMQ對比

2021-08-03 00:17:02 字數 1313 閱讀 6986

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函式生...