首页 » SEO优化 » phpkafka花费掉败技巧_解惑 kafka挂掉落一个节点为什么消费者消费不到数据了

phpkafka花费掉败技巧_解惑 kafka挂掉落一个节点为什么消费者消费不到数据了

duote123 2024-12-18 0

扫一扫用手机浏览

文章目录 [+]

回答“资源”领取独家整理的学习资料!

每一个成功人士的背后,必定曾经做出过年夜胆而又孤独的决定。

phpkafka花费掉败技巧_解惑  kafka挂掉落一个节点为什么消费者消费不到数据了

放弃不难,但坚持很酷~

phpkafka花费掉败技巧_解惑  kafka挂掉落一个节点为什么消费者消费不到数据了
(图片来自网络侵删)

kafka版本:2.11-1.1.0

一、序言

之前,Kafka 集群就一个 broker ,id 为 200 ,然后根据需求,我又扩展了 2 个节点,修正 broker.id 、listeners 、创建数据目录,然后就启动 Kafka 节点了,到此,我以为 Kafka 集群三节点支配完毕,kafka broker id 分别为 200、201、202。
于是,我创建了新的 topic:test ,3 分区 3 副本,生产、消费数据都很正常。

但是,当 broker 200 挂掉了往后,溘然创造消费者消费不了数据了,但还可以往新 topic 中生产数据。
这就很奇怪了啊,本篇小文就解除你心中的迷惑。
接着往下看:

二、为什么会涌现上述情形呢?

1、为什么消费者不能够消费 topic 数据?

之前,Kafka 集群单节点的时候,offsets.topic.replication.factor 参数设置的是 1 ,以是,kafka 自动创建的 __consumer_offsets topic 副本数也便是 1 ,它的默认 50 个分区就都在 broker 200 节点上。

当 broker 200 节点停掉之后,消费者组找不到 __consumer_offsets 中自己的 offset 信息了,以是就消费不到了。

2、为什么生产者能够发送数据到topic:test

由于 topic:test 的副本数为 3 ,纵然在 broker 200 上的分区副本挂掉了,在 broker 201、202 上还有副本,以是往 topic:test 发送数据是能够成功的。

三、办理办法

为了防止上述情形的发生,须要先担保 topic __consumer_offsetsleader 副当地点的节点 kafka 运行状态是正常的,然后通过 kafka 自带的脚本工具,增加 __consumer_offsets 的副本数。

可以根据之前揭橥的 《教你如何重新分布kafka分区、增加分区副本数》文章来增加 __consumer_offsets 的副本数。
根据《kafka 如何对 topic 分区 replica leader 进行负载均衡》文章来担保 __consumer_offsets Leader 副本的负载均衡,就大功告成啦。
你可以再停掉一个节点试一下。

欢迎大家留言谈论

kafka 如何对 topic 分区 replica leader 进行负载均衡

必会 | 教你如何重新分布kafka分区、增加分区副本数

解惑 | 为什么我根据韶光戳得到的offset为空呢?

两种实现办法 | 如何查看消费者组的消费情形

Kafka根本(二):生产者干系知识汇总

Kafka根本(一):基本观点及生产者、消费者示例

扫一扫,我们的故事就开始了。

让我知道你在看

标签:

相关文章