原先的3节点的kafka假设为node1、node2、node3
准备2台空闲点的服务器(这里假设为node4和node5)
系统版本:CentOS7
node1 192.168.2.187
node2 192.168.2.188
node3 192.168.2.189
node4 192.168.2.190
node5 192.168.2.191
kafka的扩容操作分为2步:
1、zk 节点扩容
2、kafka 节点扩容
首先在node4 node5上把相关的软件部署好:
第一部分:zk节点的扩容:
1、在node4上执行:
2、启动node4的zk进程:
3、在node5上执行:
4、启动node5的zk进程:
5、当我们确认 新加的2个zk节点没问题后,我们需要去修改之前的老的3台zk的配置,然后重启这3个zk
修改 node1 node2 node3的 zk配置,如下:
注意重启的时候,我们先重启 follower节点(例如我这里follower是 node2、node3,leader是 node1)
第二部分:kafka节点的扩容:
1、node4 (192.168.2.190)上修改:
2、启动node4的kafka程序:
3、node5(192.168.2.191)上修改
4、启动node5的kafka程序:
5、测试是否有问题
这里我们可以自己先用 kafka-console-producer.sh 和 kafka-console-consumer.sh 自测下是否 正常工作,然后看看 kafka-manager上是否有需要重新均衡的副本。。
第三部分:对存在风险broker节点的数据迁移(我这里需要这么操作,单纯的扩容不需要这个步骤):
这里我们可以使用kafka-manager这个web平台来做 topic的迁移操作,很简单,这里就不截图了。
第四部分: 对node2 node3下线操作
1、关闭node2 node3节点上面的zk进程,让zk leader节点自动选举
2、关闭node2 node3上面的kafka进程,让kafka controller节点自动选举
## 可能遇到的问题:
在迁移过程中,遇到consumergroup在我们迁移topic的时候发生异常,让业务方重启了consumer后 报错消失。。
转自:https://blog.51cto.com/lee90/2423980