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),確認消息發送/接收正常(無超時、錯誤)。