kafka的leader的均衡機制
當乙個broker停止或者crashes時,所有本來將它作為leader的分割槽將會把leader轉移到其他broker上去,極端情況下,會導致同乙個leader管理多個分割槽,導致負載不均衡,同時當這個broker重啟時,如果這個broker不再是任何分割槽的leader,kafka的client也不會從這個broker來讀取訊息,從而導致資源的浪費。
kafka中有乙個被稱為優先副本(preferred replicas)的概念。如果乙個分割槽有3個副本,且這3個副本的優先級別分別為0,1,2,根據優先副本的概念,0會作為leader 。當0節點的broker掛掉時,會啟動1這個節點broker當做leader。當0節點的broker再次啟動後,會自動恢復為此partition的leader。不會導致負載不均衡和資源浪費,這就是leader的均衡機制。
在配置檔案conf/ server.properties中配置開啟(預設就是開啟):
auto.leader.rebalance.enable true
kafka的leader選舉過程 再平衡
afka在所有broker中選出乙個controller,所有partition的leader選舉都由controller決定。controller會將leader的改變直接通過rpc的方式 比zookeeper queue的方式更高效 通知需為此作出響應的broker。同時controller也負...
Kafka 中的再均衡
我們先回顧下,乙個主題可以有多個分割槽,而訂閱該主題的消費組中可以有多個消費者。每乙個分割槽只能被消費組中的乙個消費者消費,可認為每個分割槽的消費權只屬於消費組中的乙個消費者。但是世界是變化的,例如消費者會宕機,還有新的消費者會加入,而為了應對這些變化,讓分割槽所屬權的分配合理,這都需要對分割槽所屬...
kafka手動負載均衡
針對執行中kafka的集群,因為特定原因,部分kafka節點負荷量超載,可以進行手動topic重新分配 還可以根據需求只重新分配特定topic到特定kafka節點,以實現只想在固定節點使用特定topic的目的。vim topics.json version 1 usr local kafka bin...