kafka 消費者分割槽策略

2021-10-01 19:38:05 字數 931 閱讀 7388

分割槽分配策略:(當消費者組中的消費者增多或減少會觸發分割槽分配策略)

乙個consumer group中有多個consumer,乙個topic有多個partition,所以必然會涉及到partition

的分配問題,及確定那個partition由哪個consumer來消費。

kafka中有兩種分配策略,一是roundrobin,一是range(預設):

roundrobin是輪詢分配給消費者:

假如:(1)topic的名字為topica,有三個分割槽0,1,2,乙個consumer gourp中有兩個consumer分別是a,b那麼這時候分配規則:a , topica-0和topica-2; b,topica-1;輪詢的方式進行的。

(2)topic的名字為topicb,topica,分別有三個分割槽0,1,2,乙個consumer gourp中有兩個consumer分別是a,b那麼這時候分配規則a訂閱topica,b訂閱topicb(其實就是組訂閱了topica和b,這個是針對組進行訂閱的):這時會根據topicandpartition物件將分割槽進行重新處理,根據hash值將這兩個的主題重新分配,分配為六個物件,在把這六個物件進行輪詢給到組內的兩個消費者。這個是針對組的。(roundrobin分配策略)

range分配策略(針對topic進行分配的):

(1)topic的名字為topica,有三個分割槽0,1,2,乙個consumer gourp中有兩個consumer分別是a,b那麼這時候分配規則:a,topic-0和topic-1;b,topic-2。不是輪詢分配。

(2)topic的名字為topicb,topica,分別有三個分割槽0,1,2,乙個consumer gourp中有兩個consumer分別是a,b那麼這時候分配規則組訂閱topica和topicb,這樣a對應的就是topica-0,topica-1,topicb-0,topicb-1;b對應的就是topica-2和topicb-2。

kafka消費者分割槽分配策略

在這裡對這一塊進行總結,具體看這篇文件 知乎 kafka消費者組與重平衡 目前一共三種分割槽分配策略 1.rang 這個策略主要方式是分割槽數除以消費者數來計算的 如果主題的分割槽分割槽不能平均分配給組內每個消費者,那麼對該主題,某些消費者會被分配到額外的分割槽 2.輪詢 這個模式很好理解,但是如果...

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

分割槽的目的在於可以提高併發,並在可在集群中擴充套件以適應不同大小的資料 producer傳送的資料會被封裝成producer recorder物件 在生成producer recorder物件時指明partition的情況下,直接進入對應的partition分割槽 沒有指明partition值,但...

Kafka消費者的分割槽分配策略

有兩種策略,range和roundrobin。roundrobin策略有兩個前提是 同乙個consumer group裡面的所有消費者的num.streams必須相等 每個消費者訂閱的主題必須相同。range策略是以topic為整體進行分配的,roundrobin是以消費者組為整體進行分配的。假如有...