0


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 java 分布式

本文转载自: https://blog.csdn.net/lifulian318/article/details/126852758
版权归原作者 李振伟 所有, 如有侵权,请联系我们删除。

“Kafka一个节点挂掉,导致服务不可消费”的评论:

还没有评论