Kafka生產者與消費者分割槽策略

2021-10-08 22:03:41 字數 836 閱讀 3004

分割槽的目的在於可以提高併發,並在可在集群中擴充套件以適應不同大小的資料

producer傳送的資料會被封裝成producer recorder物件

在生成producer recorder物件時指明partition的情況下,直接進入對應的partition分割槽

沒有指明partition值,但有key值,將key的hash值與topic的分割槽數進行取餘,進入對應的分割槽

沒有partition和key值,則隨機生成乙個整數(後面每次呼叫在該整數基礎上自增),將該整數和topic的分割槽數取餘,進入對應分割槽

消費者分割槽有兩種策略,分別為range和roundrobin,預設策略是range

range是首先對同乙個topic裡面的分割槽按照序號進行排序,並對消費者按照字母順序進行排序。然後用partitions分割槽的個數除以消費者執行緒的總數來決定每個消費者執行緒消費幾個分割槽。如果除不盡,那麼前面幾個消費者執行緒將會多消費乙個分割槽。

例如:我們有10個分割槽,兩個消費者(c1,c2),3個消費者執行緒,10 / 3 = 3而且除不盡。

c1-0 將消費 0, 1, 2, 3 分割槽

c2-0 將消費 4, 5, 6 分割槽

c2-1 將消費 7, 8, 9 分割槽

roundrobin 第一步:將所有主題分割槽組成topicandpartition列表,然後對topicandpartition列表按照hashcode進行排序,最後按照輪詢的方式發給每乙個消費執行緒,

例如:我們有10個分割槽,兩個消費者(c1,c2),3個消費者執行緒

c1-0 將消費 0, 3, 6, 9 分割槽

c2-0 將消費 1, 4, 7 分割槽

c2-1 將消費 2, 5, 8 分割槽

生產者消費者 生產者與消費者模式

一 什麼是生產者與消費者模式 其實生產者與消費者模式就是乙個多執行緒併發協作的模式,在這個模式中呢,一部分執行緒被用於去生產資料,另一部分執行緒去處理資料,於是便有了形象的生產者與消費者了。而為了更好的優化生產者與消費者的關係,便設立乙個緩衝區,也就相當於乙個資料倉儲,當生產者生產資料時鎖住倉庫,不...

Kafka消費者生產者例項

它允許發布和訂閱記錄流,類似於訊息佇列或企業訊息傳遞系統。它可以容錯的方式儲存記錄流。它可以處理記錄發生時的流。由於主要介紹如何使用kafka快速構建生產者消費者例項,所以不會涉及kafka內部的原理。乙個基於kafka的生產者消費者過程通常是這樣的 來自官網 cd kafka 2.11 0.11....

Kafka消費者生產者例項

2017年07月30日18 22 56 rhwayfunn 閱讀數 13818標籤 kafka 更多 個人分類 分布式系統 為了更為直觀展示卡夫卡的訊息生產消費的過程,我會從基於控制台和基於應用兩個方面介紹使用例項.kafka是乙個分布式流處理平台,具體來說有三層含義 它允許發布和訂閱記錄流,類似於...