Debian系统下Kafka集群管理方法
一 架构与运行模式
二 部署与初始化
sudo apt update && sudo apt install -y openjdk-11-jdksudo mkdir -p /data/kafka && sudo chown -R $(whoami):$(whoami) /data/kafka192.168.112.10 data-vm1
192.168.112.130 data-vm2
192.168.112.129 data-vm3
# 节点1:data-vm1
node.id=1
process.roles=broker,controller
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
advertised.listeners=PLAINTEXT://data-vm1:9092
controller.quorum.voters=1@data-vm1:9093,2@data-vm2:9093,3@data-vm3:9093
log.dirs=/data/kafka
num.partitions=3
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=1,2,3
节点2/3 将 node.id 与 advertised.listeners 改为各自主机名即可。cd /usr/local/kafka
./bin/kafka-storage.sh format -t $(./bin/kafka-storage.sh random-uuid) -c config/server.properties
./bin/kafka-server-start.sh -daemon config/server.properties
broker.id=<唯一ID>
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://<本机IP或FQDN>:9092
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
log.dirs=/data/kafka
三 日常运维与常用命令
./bin/kafka-topics.sh --create \
--topic my-topic \
--bootstrap-server data-vm1:9092,data-vm2:9092,data-vm3:9092 \
--partitions 3 --replication-factor 3
./bin/kafka-topics.sh --list --bootstrap-server data-vm1:9092
./bin/kafka-topics.sh --describe --topic my-topic --bootstrap-server data-vm1:9092
# 扩容分区(示例)
./bin/kafka-topics.sh --alter --topic my-topic --partitions 6 --bootstrap-server data-vm1:9092
# 生产
./bin/kafka-console-producer.sh --bootstrap-server data-vm1:9092 --topic my-topic
# 消费(从头)
./bin/kafka-console-consumer.sh --bootstrap-server data-vm1:9092 --topic my-topic --from-beginning
# 查看消费组
./bin/kafka-consumer-groups.sh --bootstrap-server data-vm1:9092 --list
# 查看消费滞后
./bin/kafka-consumer-groups.sh --bootstrap-server data-vm1:9092 \
--describe --group my-consumer-group
./bin/kafka-configs.sh --bootstrap-server data-vm1:9092 \
--alter --entity-type broker --entity-name <broker.id> \
--add-config retention.ms=604800000
四 监控与故障排查
jps -l | grep Kafka
ss -lntp | grep -E ':(9092|9093|2181)'
# KRaft 元数据快照检查
./bin/kafka-metadata-shell.sh --snapshot /data/kafka/logs/__cluster_metadata-0/00000000000000000000
五 安全与高可用建议