kafka client 分割槽策略

2021-10-10 08:13:34 字數 793 閱讀 6597

分割槽分配策略

乙個消費組內有多個消費者,乙個topic有多個patition,所以消費者和partition是多對多的關係,kafka預設有以下三種分割槽分配策略

1.rangeassignor

按照消費者總數和分割槽總數整除得到乙個跨度,然後將分割槽按照跨度進行平均分配,當訂閱多個topic時,每個topic分別計算

例如消費者c0,c1

topic有2個,分割槽分別為:

t0p0,t0p1,t0p2

t1p0,t1p1,t1p2

分配過程:

(1)分配topic:t0

c0: t0p0,t0p1

c1:t0p2

(2)分配topic:t1

c0:t0p0,t0p1,t1p0,t1p1

c1:t0p2,t1p2

如上,分配可能導致不均衡

2.roundrobinassignor

每個主題以輪詢的方式分配,上面的例子分配如下:

c0:t0p0,t0p2,t1p1

c1:t0p1,t1p0,t1p2

當每個消費者訂閱的主題不一致時,可能導致分配不均

(3)stickyassignor

從0.11.0開始新增的分配策略

a.分割槽的分配盡可能均勻

b.當出現重分配的時候,分配盡可能和上次分配保持一致,減少分割槽移動

當a和b衝突時,以a為主

(4)自定義分割槽分配策略

2.4.0之前實現partitionassignor介面,2.4.0之後實現consumerpartitionassignor

kafka client 分割槽分配

分割槽分配 分割槽再均衡在服務端由groupcoordinator負責,在客戶端由consumercoordinator負責,集群的全部消費組劃分為多個子集,每個消費組的子集在服務端對應乙個groupcoordinator 有以下幾種情況會觸發再均衡 1.新消費者加入 2.消費者被動下線 3.消費者...

kafka partition分割槽策略

方便在集群中擴充套件,每個 partition 可以通過調整以適應它所在的機器,而乙個 topic 又可以有多個 partition 組成,因此整個集群就可以適應任意大小的資料了 可以提高併發,因為可以以 partition 為單位讀寫了。我們需要將 producer 傳送的資料封裝成乙個 prod...

kafka消費分割槽策略

在 kafka 實際生產過程中,每個 topic 都會有 多個 partitions。1.多個partitions有什麼好處?1 多個 partition 能夠對 broker 上的資料進行分片,通過減少訊息容量來提公升 io 效能 2 為了提高消費端的消費能力,一般情況下會通過多個 conusme...