可消費訊息數量 訊息佇列之Kafka概念篇

2021-10-14 15:45:56 字數 1133 閱讀 5771

1.基本定義

kafka是乙個分布式的、可分割槽的、可複製的訊息系統。它提供了普通資訊系統的功能,但具有自己獨特的設計

2.底層原理

(2)topic與訊息

這樣,訊息就以乙個個id的方式,組織起來。

consumer選擇乙個topic,通過id指定從哪個位置開始消費訊息。消費完成之後保留id,下次可以從這個位置開始繼續消費,也可以從其他任意位置開始消費。

(3)offset

上面的id在kafka中稱為offset,這種組織和處理策略提供了如下好處:

(4)partitions

每個topics劃分為乙個或者多個partition,並且partition中的每條訊息都被標記了乙個是offset,並且儲存的資料是可配置儲存時間的

(5)producer

producer生產訊息需要如下引數:

(6)consumer

kafka通過consumer group將兩種模式統一處理:

(7)consumer rebalance

(8)consumer group(消費者組)

3.重要概念

(1) kafka為什麼比其他的mq都快

(2)offset的管理

(3)負載均衡

(4)消費資料有序

訊息佇列之訊息過濾

眾所周知,rocketmq是支援訊息過濾的,即傳送訊息時,可以給訊息設定乙個tag。訂閱主題的時候,可以設定只消費攜帶某些tag的訊息,起到訊息過濾的作用。rocketmq中是把訊息tag通過雜湊轉換成了的long型,儲存在了訊息索引中。在訂閱客戶端拉取訊息時,為了減少協議大小,減低報文長度,拉取協...

訊息佇列 保證訊息消費的冪等

昨天業務反饋了乙個問題,乙個使用者的月流水賬單重複了,拿到userid,開始定位問題之路。檢視資料庫記錄,如下圖,使用者月流水資料確實重複了 taskid同乙個批次,每個月資料都有二條 1.首先,看外部資料 商是否重複推送業務資料給我,我程式中是會設定攔截重複訊息 2.檢視訊息接收,以及訊息推送到m...

訊息佇列 重複消費問題

所謂冪等性,就是資料無論操作多少次,所產生的影響跟執行一次是一樣的,比如對於讀操作來說,無論讀取多少次資料,都跟讀取一次的資料是一樣的,所以讀操作是乙個冪等性操作,而新增操作,新增多次會有多條記錄,因而寫操作則是非冪等性操作。因而對於以上場景,只要保證訊息消費的冪等性,就能解決重複消費的問題。常見的...