如何擴充套件Kafka的broker

2022-01-11 12:22:49 字數 1526 閱讀 2190

背景:因為公司收集終端盒子資料的kafka服務偶爾會倒,所以考慮使用kafka的分布式,增加broker節點,來提高系統的可用性。

當然,zookeeper服務節點也是可以增加的,但不在本文範圍內。

具體步驟如下:

1. 新加kafka服務,並啟動

如果是同一伺服器,則可以拷貝新建server.properties的方式啟動,具體參考官網

這裡我用的是第二種方案,下面是server.properties中修改的三個配置

broker.id=1

listeners=plaintext:

zookeeper.connect=192.168.0.20:2181

啟動命令

nohup /opt/kafka_2.12-2.4.0/bin/kafka-server-start.sh /opt/kafka_2.12-2.4.0/config/server.properties &
相應的停止命令

/opt/kafka_2.12-2.4.0/bin/kafka-server-stop.sh /opt/kafka_2.12-2.4.0/config/server.properties &
2. 重新給topic分配副本

1)新建json檔案increase-replication-factor.json,並輸入如下內容

]

}

2)執行分配命令

3. 檢視執行結果

./bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --verify
可以看到,因為log檔案過多,導致複製操作還在執行

等待一段時間之後,再次檢視執行結果

最後檢視該topic狀態(relicationfactor和replicas的變化),增加成功!

./bin/kafka-topics.sh --zookeeper localhost:2181 --topic activerecords --describe
如果嘗試把節點0的kafka停掉,會發現leader發生了變化

另外,中間發生了如下的錯誤,原因是兩邊的kafka版本不同,乙個是2.10,乙個是2.12,在將低版本公升級後,問題解決。

connection to 0 was disconnected before the response was read
參考:kafka官網:

kafka中文學習**:

Kafka擴充套件內容

低階api props.put group.id 01 offset自動重置,offset可能因為快取刪除,序號不一定從0開始 props.put consumerconfig.auto offset reset config,earliest 高階api consumer.seek new top...

Kafka 如何理解Kafka的「快」?

據了解,kafka吞吐量峰值每秒百萬,就算在記憶體個cpu都不高的情況下,最高可達每秒十萬,並且還能做到持久化儲存。kafka如此高吞吐率的原因是什麼?隨機寫每秒幾十幾百k。作業系統從磁碟將資料copy dma copy 到核心空間緩衝區 kernel buffer 應用程式從核心空間緩衝區 ker...

Kafka詳解二 如何配置Kafka集群

kafka集群配置比較簡單,為了更好的讓大家理解,在這裡要分別介紹下面三種配置 1.首先啟動zookeeper服務 kafka本身提供了啟動zookeeper的指令碼 在kafka bin 目錄下 和zookeeper配置檔案 在kafka config 目錄下 首先進入kafka的主目錄 可通過 ...