现在的位置: 首页 > web前端 > 正文

kafka的一个错误

2020年07月15日 web前端 ⁄ 共 875字 ⁄ 字号 评论关闭

  今天由于kafka集群搭建时的配置不当,由于一台主消费者挂掉(服务器崩了,需要维修),导致了所有新版消费者(新版的offset存储在kafka)都无法拉取消息。


  kafka的一个错误


  由于是线上问题,所以是绝对不能影响用户的,使用老版客户端(offset存储在zk)进行消费,然后将kafka迁移到备用服务。


  下面来说一下这次事故的具体处理思路


  1.首先要确保获取到的消息不能丢失,所以老版消费者进行消费


  2.线上服务通过均衡负载一台一台的进行切换kafka服务,当原生产者数据都消费完时,将消费者切换到备用服务


  3.开始配置线上kafka服务


  kafka错误怎么解决


  主要做了如下修改


  offsets.topic.replication.factor=3


  设置副本数量为3,这样当一台消费者宕机时,其他消费者也可以进行消费


  为了使topic可以进行复制副本,这里采用了比较粗暴的方法,直接清空topic和offset


  分为以下几个步骤


  ./zookeeper-shell.sh127.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给大家简单的介绍了一些,希望大家多看看。

抱歉!评论已关闭.