Kafka集群平滑重启
来源:互联网 发布:php开源报表工具 编辑:程序博客网 时间:2024/05/22 16:41
最近修改公司线上kafka集群配置然后直接kill掉进程来重启集群发现所有生产者都无法写入数据导致丢了数据,栽了一个大坑,接下来的工作肯定是补坑找原因,就分享一下。
系统环境说明:kafka版本为0.8.1.1,kafka集群配置为10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka,因此在zookeeper中的根路径为:/kafka
1.先决条件,kafka启动必须加上JMX_PORT=9999(自己选一个空闲端口)
在zookeeper的客户端使用get /kafka/brokers/ids/[0,1,2](一个数字代表你的brokerid),如果返回信息中的jmx_port 值为-1就说明启动时没有指定JMX_PORT,这样不需要进行下面步骤,请直接重启集群加上配置,并且server.properties需要设置auto.create.topics.enable=false。
2.观察状态
使用命令./bin/kafka-topics.sh --zookeeper 10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka --describe --topic checkall
观察当前topic的partition分布状况,以单个topic作为说明,此时状态如下:
Topic:checkall PartitionCount:2ReplicationFactor:2Configs:
Topic: checkallPartition: 0Leader: 1 Replicas: 1,0Isr: 0,1
Topic: checkallPartition: 1Leader: 0 Replicas: 0,1Isr: 0,1
3.让某台机器下线
./bin/kafka-run-class.sh kafka.admin.ShutdownBroker --zookeeper 10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka --broker 1 --num.retries 3 --retry.interval.ms 600
如出错:java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: XXXXXXXX; nested exception is 请回到步骤1
如成功:再次观察状态可以看到:
Topic:checkall PartitionCount:2ReplicationFactor:2Configs:
Topic: checkallPartition: 0Leader: 0Replicas: 1,0Isr: 0,1
Topic: checkallPartition: 1Leader: 0Replicas: 0,1Isr: 0,1
此时leader已经全部切到brokerid为 0的机器上了
4.JPS找到kafka进程号并kill掉
5.leader重新均衡
./bin/kafka-preferred-replica-election.sh --zookeeper 10.12.0.23:2181,10.12.0.24:2181,10.12.0.25:2181/kafka
成功后重新观察状态会发现恢复到原来正常情况了。
转载请注明来自:http://blog.csdn.net/clarencezi/article/details/42271037
- Kafka集群平滑重启
- nginx平滑重启
- nginx平滑重启
- nginx平滑重启
- Nginx平滑重启
- 如何平滑重启mysql
- 如何平滑“重启“”mysql
- workerman平滑重启原理
- dubbo如何平滑重启
- php-fpm平滑重启
- Nginx的平滑重启和平滑升级
- nginx平滑重启与平滑升级的方法
- Nginx的平滑重启和平滑升级
- Nginx 启动、停止、平滑重启和平滑升级
- nginx怎么启动平滑重启关闭
- Nginx 启动、停止、平滑重启
- Nginx启用, 停止, 平滑重启命令
- Nginx的启动、停止、平滑重启
- ThreadLocal模式
- JQuery学习—封装,让这个世界变得更简单
- Android Push 开源方案解析
- vim复制
- 9.5(3)求和:输入的20个数
- Kafka集群平滑重启
- VMware下的DOS虚拟机与宿主机交换数据
- 【cocos2dx】Ref 到底是什么鬼?
- PHP中的mysql_real_escape_string函数
- 148 朴光佑 蓽齋
- Android实现推送方式解决方案
- epoll详解
- Apache 2.4+php5.x+mysq5.xl环境搭建(四)
- 项目总结之音效播放问题