kafka错误怎么解决
这篇文章主要为大家展示了"kafka错误怎么解决",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"kafka错误怎么解决"这篇文章吧。
今天由于kafka集群搭建时的配置不当,由于一台主消费者挂掉(服务器崩了,需要维修),导致了所有新版消费者(新版的offset存储在kafka)都无法拉取消息。
kafka的一个错误
由于是线上问题,所以是绝对不能影响用户的,使用老版客户端(offset存储在zk)进行消费,然后将kafka迁移到备用服务。
下面来说一下这次事故的具体处理思路
1.首先要确保获取到的消息不能丢失,所以老版消费者进行消费
2.线上服务通过均衡负载一台一台的进行切换kafka服务,当原生产者数据都消费完时,将消费者切换到备用服务
3.开始配置线上kafka服务
kafka错误怎么解决
主要做了如下修改
offsets.topic.replication.factor=3
设置副本数量为3,这样当一台消费者宕机时,其他消费者也可以进行消费
为了使topic可以进行复制副本,这里采用了比较粗暴的方法,直接清空topic和offset
分为以下几个步骤
./zookeeper-shell.sh227.0.0.1:24500
rmr/brokers/topics/topic-name
rmr/config/topics/topic-name
rmr/admin/delete_topics/topic-name
此时已经将topic完全删除,然后进行topic的新建
bin/kafka-topics--create--zookeeperlocalhost:2181--replication-factor3--partitions3--topictopic-name
这时可以启动生产者和消费者进行查看,已经不再出现一开始的异常
Connectiontonode-1couldnotbeestablished.Brokermaynotbeavailable.
这时我进行了测试,对三台broker中的任意一台进行下线,服务会自动选择其他节点进行生产和消费。
以上是"kafka错误怎么解决"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!