kafka 修改分割槽 kafka分割槽

2021-10-12 15:12:44 字數 926 閱讀 1309

一、topic下引入partition的作用:

topic是邏輯的概念,partition是物理的概念。

為了效能考慮,如果topic內的訊息只存於乙個broker,那這個broker會成為瓶頸,無法做到水平擴充套件。kafka通過演算法盡可能的把partition分配到集群的不同伺服器上。

partition也可以理解為segment的封裝。乙個partition對應多個segment。乙個segment包含乙個資料檔案和乙個索引檔案

二、kafka分割槽分配策略:

partition.assignment.strategy= range(預設值) 或 roundrobin

range策略:分割槽順序排序,消費者按照字母排序。

partitions的個數除於消費者執行緒的總數來決定每個消費者執行緒消費幾個分割槽。如果除不盡,那麼前面幾個消費者執行緒將會多消費乙個分割槽。

假設有3個消費者11個分割槽

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

c1-2 將消費 4, 5, 6, 7 分割槽

c1-3 將消費 8, 9, 10 分割槽

roundrobin策略:分割槽按照hashcode排序,消費者按照字母排序

假設有3個消費者11個分割槽

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

c1-2 將消費 1, 4, 7, 10 分割槽

c1-3 將消費 2, 5, 8 分割槽

注意:1、乙個分割槽只能被乙個消費者消費,但乙個消費者可以消費多個分割槽的資料

2、新的api中預留了自己實現分配策略的可能性class org.apache.kafka.clients.consumer.rangeassignor

三、分割槽修改./kafka-topics.sh --alter --topic topic1 --zookeeper zkip:2181/kafka --partitions 6

kafka修改分割槽和副本數

檢視現在副本分配情況 bin kafka topics.sh zookeeper 127.0.0.1 2181 describe topic test1 topic test1 partitioncount 3 replicationfactor 2 configs topic test1 part...

kafka 分割槽數

kafka的分割槽,相當於把乙個topic再細分成了多個通道 對應 多個執行緒 部署的時候盡量做到乙個消費者 執行緒 對應乙個分割槽。如果你的分割槽數是n,那麼最好執行緒數也保持為n。kafkastream 它是consumer的關鍵類,提供了遍歷方法用於consumer程式呼叫實現資料的消費。其底...

kafka 系列 5 1 分割槽管理

分割槽重分配 複製限流 修改副本因子 當我們輸入以下命令,kafka topics.sh zookeeper zookeeper 2181 describe topic test4檢視主題詳情時,會展示如下資訊 其中replicas就是ar。現,我們將brokerid 2的機器重啟,kafka會從i...