背景:原集群三台主机节点,由于业务增长迅速,现需扩容三台节点,增加至六节点集群;原三台 Zookeeper 节点无需扩容。

初始化新节点

  • 准备三台新节点,分别安装相同版本 kafka 应用,并复制原集群配置进行修改。
  • 启动三台节点观察是否加入集群成功。

迁移 topic 分区

  • 查看 topic 在哪些分区上
sh ./kafka-topics.sh --describe --topic demo --bootstrap-server 192.168.206.112:9092
  • 然后使用如下命令,Kafka会自动生成各个partition需要转移到的目标broker,partition的均衡性自动保证。

  • 创建 topics-to-move.json 文件,指定 topic

sh ./kafka-reassign-partitions.sh --zookeeper 192.168.206.112:2181/kafka --topics-to-move-json-file topics-to-move.json --broker-list "3,4,5" --generate 
  • 执行操作
sh ./kafka-reassign-partitions.sh --zookeeper 192.168.206.112:2181/kafka251 --reassignment-json-file move-to-brokers.json --execute
  • 验证结果
sh ./kafka-reassign-partitions.sh --zookeeper 192.168.206.112:2181/kafka251 --reassignment-json-file move-to-brokers.json --verify
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐