欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Kafka宕机后不再高可用?探究Kafka高可用实现

时间:2023-04-21

问题出在了 __consumer_offset 上, __consumer_offset 是一个 Kafka 自动创建的 Topic,用来存储消费者消费的 offset (偏移量)信息,默认 Partition 数为50。而就是这个Topic,它的默认副本数为1。如果所有的 Partition 都存在于同一台机器上,那就是很明显的单点故障了!当将存储 __consumer_offset 的 Partition 的 Broker 给 Kill 后,会发现所有的消费者都停止消费了。

第一点 ,需要将 __consumer_offset 删除,注意这个Topic时Kafka内置的Topic,无法用命令删除,我是通过将 logs 删了来实现删除。

第二点 ,需要通过设置 offsets.topic.replication.factor 为3来将 __consumer_offset 的副本数改为3。通过将 __consumer_offset 也做副本冗余后来解决某个节点宕机后消费者的消费问题。

最后,关于为什么 __consumer_offset 的 Partition 会出现只存储在一个 Broker 上而不是分布在各个 Broker 上感到困惑。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。