kafka集群維護

2021-09-20 20:23:13 字數 1334 閱讀 7601

kafka集群基本資訊實時檢視和修改:

集群資訊實時檢視(topic工具)

kafka-topics,sh --list --zookeeper x.x.x.x 

kafka-topics.sh --describe --zookeeper x.x.x.x --topic topic_name 

集群資訊實時修改(topic工具)

提高topic併發,通過增加topic的partition數來解決。

現在我們搭建了乙個集群,怎麼知道每個節點的資訊呢?執行「"describe topics」命令就可以了:

> bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

topic:my-replicated-topic       partitioncount:1        replicationfactor:3     configs:

topic: my-replicated-topic      partition: 0    leader: 1       replicas: 1,2,0 isr: 1,2,0

下面解釋一下這些輸出。第一行是對所有分割槽的乙個描述,然後每個分割槽都會對應一行,因為我們只有乙個分割槽所以下面就只加了一行。

leader

:負責處理訊息的讀和寫,leader是從所有節點中隨機選擇的.

replicas

:列出了所有的副本節點,不管節點是否在服務中.

isr:是正在服務中的節點.

kafka集群leader 平衡機制

集群機器會上下線

集群分割槽日誌遷移:

1、寫jason檔案,將需要遷移的topic寫入。

疑問:

1個topic有多個分割槽,是否每個分割槽都都是乙份完整的日誌。

partitions的設計目的有多個.最根本原因是kafka基於檔案儲存.通過分割槽,可以將日誌內容分散到多個server上,來避免檔案尺寸達到單機磁碟的上限,每個partiton都會被當前server(kafka例項)儲存;可以將乙個topic切分多任意多個partitions,來訊息儲存/消費的效率.此外越多的partitions意味著可以容納更多的consumer,有效提公升併發消費的能力.(具體原理參見下文).

個人理解:  producer生成日誌並推送到對應topic上,topic 按照partition將日誌分散。

每個topic有乙個broker 作為leader,負責讀寫,同時其他機器從leader進行同步。

2、   broker 為集群中的機器例項,對應topic的 leader 值為broker機器的id,負責讀寫操作。

zookeeper集群部署 kafka集群部署

wget wget 解壓到目錄 tar zxvf apache zookeeper 3.5.8 bin.tar.gz c usr local 進入目錄 cd usr local 建立軟連線 ln s usr local apache zookeeper 3.5.8 zookeeper 複製配置檔案 ...

kafka 集群 測試

參考資料 wget 解壓tar xvzf kafka 2.11 0.10.0.1.tgz 移動mv kafka 2.11 0.10.0.1 usr local 修改配置 cd kafka 2.11 0.10.0.1 config mv server.properties server 1.prope...

kafka集群搭建

安裝zookeeper kafka自帶了zookeeper,建議還是用外部的zk集群,搭建步驟如下 準備3臺機器,假設我們叫c1 c2 c3,ip分別為ip1 ip2 ip3 將附件zookeeper 3.4.6.tar.gz分別拷貝至3臺機器 c1機器上解壓zookeeper 3.4.6.tar....