Kafka一个节点挂掉,导致服务不可消费
Posted 李振伟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kafka一个节点挂掉,导致服务不可消费相关的知识,希望对你有一定的参考价值。
问题:Kafka一个节点挂掉,导致服务不可消费。
工作中遇到的一个问题,解决方法如下。
一、修改系统_offsets副本数为3
1、首先查看系统的_offsets副本是几个?
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.6.36.159:2181|grep consumer_offsets
查看结果如下图:副本数为1。
2、修改kafka的核心配置文件server.properties
将num.partitions参数(默认为1)修改为3,
另外需要添加auto.create.topics.enable=true ,如果没有对用的topic可以主动创建topic。
由于__consumer_offsets是kafka默认的主题,无法删除,我们可以删除zookeeper中的__consumer_offsets。
进入zookeeper/bin目录执行./zkCli.sh
cd /usr/local/zookeeper/bin
./zkCli.sh
ls /broksers/topics
# 如果此命令报错,用下面代替
rmr /broksers/topics/__consumer_offsets
# 新版本zk去除了rmr命令,在这里我们用
deleteall /broksers/topics/__consumer_offsets
然后重启zookeeper、kafka
# 停止
/usr/local/zookeeper/bin/zkServer.sh stop
/usr/local/kafka/bin/kafka-server-stop.sh -daemon /usr/local/kafka/config/server.properties
# 启动
/usr/local/zookeeper/bin/zkServer.sh start
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
3、再次查看系统的_offsets副本是几个?
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.6.36.159:2181|grep consumer_offsets
在节点1修改__consumer_offsets后,在节点2和节点3查看__consumer_offsets发现副本数已经变为3,不需要再进行修改。
!!!注意、到此问题没有解决,这里只是解决了系统的offsets副本,原先的topic的副本数依然为1,需要我们对已有的topic进行扩副本!!!
二、为现有普通topic扩副本
1、查看某个topic的副本数
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.6.36.159:2181,192.6.36.161:2181,192.6.36.162:2181 --topic portal_device_info
2、制定分区及副本分配策略
添加json文件
vi /opt/portal_device_info.json
"version": 1,
"partitions": [
"topic": "portal_device_info",
"partition": 0,
"replicas": [
0,
1,
2
]
]
3、扩副本
/usr/local/kafka/bin/kafka-reassign-partitions.sh --zookeeper 192.6.36.159:2181,192.6.36.161:2181,192.6.36.162:2181 --reassignment-json-file /opt/portal_device_info.json –execute
如下图,表示成功。
4、再次查看副本数量
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper 192.6.36.159:2181,192.6.36.161:2181,192.6.36.162:2181 --topic portal_device_info
至此,问题已解决,我们测试一下,把其中一个节点停掉,kafka依然可以正常消费。
参考:
https://blog.csdn.net/DreamsArchitects/article/details/108573887
https://blog.csdn.net/yabingshi_tech/article/details/120443647
以上是关于Kafka一个节点挂掉,导致服务不可消费的主要内容,如果未能解决你的问题,请参考以下文章