Kafka集群扩容配置指南
broker.id:集群内唯一标识(如现有节点为0-3,新节点可设为4),禁止使用自动生成(-1)。listeners:客户端连接的监听地址(格式:协议://IP:端口,如PLAINTEXT://192.168.1.100:9092),需确保IP可达且端口未被占用。advertised.listeners:客户端实际连接的地址(若集群跨机房或需公网访问,需设置为公网IP或域名,如PLAINTEXT://public-ip:9092),确保客户端能正确路由到新节点。log.dirs:消息日志存储路径(建议挂载不同磁盘,用逗号分隔,如/data/kafka-logs1,/data/kafka-logs2),提升IO吞吐量和容错性。zookeeper.connect:ZooKeeper集群连接信息(格式:host1:port1,host2:port2,host3:port3,如zk1:2181,zk2:2181,zk3:2181),无需修改但需确认连接正常。bin/kafka-server-start.sh config/server.properties命令启动Broker,观察日志确认无报错(如“Started KafkaServer”)。kafka-reassign-partitions.sh工具生成初始分区迁移计划(指定Topic列表和目标Broker列表)。例如,创建topic.json文件(包含需迁移的Topic名称和分区数),执行命令:bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --topics-to-move-json-file topic.json --broker-list "0,1,2,3,4" --generate,生成包含当前分区分布和目标分布的JSON文件。reassignment.json),明确每个Topic分区的目标副本分布(如将topic1的partition 0迁移至broker 4),执行命令:bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file reassignment.json --execute。bin/kafka-reassign-partitions.sh --bootstrap-server localhost:9092 --reassignment-json-file reassignment.json --verify,确认所有分区已完成迁移(状态为“completed”)。kafka-topics.sh命令查看Topic分区分布(--describe --under-replicated-partitions),确认新节点已承担分区(如PartitionCount:3, ReplicationFactor:2, Leaders:1, Followers:2中,Leaders或Followers包含新Broker的ID)。kafka-producer-perf-test.sh)和消费者(kafka-consumer-perf-test.sh)工具测试新集群的吞吐量(如--num-records 1000000 --record-size 1000 --throughput -1),确认消息发送/接收正常(无超时、错误)。