在Debian上實現Kafka高可用性通常涉及以下幾個關鍵步驟:
sudo apt update
sudo apt install zookeeper
/etc/zookeeper/conf/zoo.cfg
文件,配置Zookeeper集群。例如:tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
在每個Zookeeper節點上啟動Zookeeper:
bin/zkServer.sh start
檢查每個節點的狀態:
bin/zkServer.sh status
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzf kafka_2.12-3.5.2.tgz
cd kafka_2.12-3.5.2
config/server.properties
,設置以下關鍵配置:broker.id=1
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
log.flush.interval.messages=1000
log.flush.interval.ms=1000
log.segment.bytes=1073741824
log.retention.hours=168
log.retention.check.interval.ms=300000
default.replication.factor=3
min.insync.replicas=2
使用以下命令創建一個Kafka主題,并設置副本因子和最小同步副本數:
bin/kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3 --min-insync-replicas 2
啟動Zookeeper服務:
sudo systemctl start zookeeper
sudo systemctl enable zookeeper
啟動Kafka服務:
sudo systemctl start kafka
sudo systemctl enable kafka
使用Kafka提供的命令行工具監控集群狀態:
bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-topic
監控Kafka集群的健康狀況,可以使用Kafka Manager等第三方工具。
當某個Kafka Broker節點宕機時,Kafka集群會自動從ISR(In-Sync Replica)列表中選擇一個新的Leader,確保服務的連續性。確保ISR列表中的Follower與Leader保持同步,以減少數據丟失。
以上步驟可以幫助你在Debian上配置Kafka的高可用性。確保所有配置項正確無誤,并定期監控集群狀態,以保持高可用性和性能。