kafka 集群节点宕机,消息丢失问题

青天白云 发表于: 2021-12-28   最后更新时间: 2021-12-29 12:19:42   963 游览

这是有一台机器宕机后的节点状态,1 宕机了


生成者向kafka 集群发送 120条消息, 1 分区已经宕机,还能接受 20条消息吗?

消费端消费,只消费到100条消息, 1 分区上的消息没有消费

上面的情况算是丢消息了吧,大佬请问怎么处理呢。

发表于 2021-12-28
添加评论

你的消息没有丢,应该是消费者的offset位置丢了。

新版的kafka,消费者位置存储在主题为__consumer_offsets中,如果它的副本数为1,那就会产生这种现象。

扩容参考:kafka命令大全

青天白云 -> 半兽人 2年前

好的,我先看看,我的副本刚开始是3个,宕机一台,还有两台; 这种情况 patition1 是不是就不应该再接受到消息了呢? 这里也不太明白 ~

半兽人 -> 青天白云 2年前

会不会接受,取决与min.insync.replicas

当producer设置acks为"all"(或"-1")时。min.insync.replicas指定必须应答成功写入的replicas最小数。如果不能满足最小值,那么producer抛出一个异常(NotEnoughReplicas或NotEnoughReplicasAfterAppend)。
当一起使用时,min.insync.replicas和acks提供最大的耐用性保证。一个典型的场景是创建一个复制因子3的topic,设置min.insync.replicas为2,并且ack是“all”。如果多数副本没有接到写入时,将会抛出一个异常。

参考:Kafka Broker配置

你的答案

查看kafka相关的其他问题或提一个您自己的问题