Kafka集群的扩容和缩容主要的步骤如下:
扩容集群
- 增加新的Broker节点
- 在新增节点上运行Kafka,设置不同的broker.id
- 新增节点加入到Zookeeper集群
- 扩容Partition数量
./bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partitions 6
- 分配新的Partition给新增的Broker节点
- 创建新的Topic时,会自动将Partition分配到所有Broker
缩容集群
- 释放需要下线的Broker节点
- 重新分配该Broker上的Partition到其他Broker
./bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --replica-assignment-json "{'0':[1,2],'1':[2,3],'2':[0,3]}"
- 缩减Partition数量
./bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partitions 4
- 下线Broker节点
- 更新生产者和消费者客户端,移除下线Broker
总结来说:
- 扩容:增加Broker节点、扩充Partition数量、分配Partition
- 缩容:迁移Partition、缩减Partition数量、下线Broker节点
重点是通过增加或者减少Partition数量来实现 Kafka 集群的扩容和缩容。同时需要分配和重新分配Partition到 Broker 节点上。