Kafka无法消费!?究竟是bug的“沦陷”还是配置的“扭曲”?

本文分析了一次Kafka消费卡死的故障案例,详细解释了Consumer如何通过Coordinator进行消费,以及Coordinator选举过程中可能出现的问题。文章揭示了网络异常引发的Controller故障及解决思路。

在一个月黑风高的夜晚,突然收到现网生产环境Kafka消息积压的告警,梦中惊醒啊,马上起来排查日志。

 

问题现象

消费请求卡死在查找Coordinator

 

Coordinator为何物?Coordinator用于管理Consumer Group中各个成员,负责消费offset位移管理和Consumer Rebalance。Consumer在消费时必须先确认Consumer Group对应的Coordinator,随后才能join Group,获取对应的topic partition进行消费。

 

那如何确定Consumer Group的Coordinator呢?分两步走:

1、一个Consumer Group对应一个__consumers_offsets的分区,首先先计算Consumer Group对应的__consumers_offsets的分区,计算公式如下:

__consumers_offsets partition# = Math.abs(groupId.hashCode() % groupMetadataTopicPartitionCount,其中groupMetadataTopicPartitionCount由offsets.topic.num.partitions指定。

2、1中计算的该partition的leader所在的broker就是被选定的Coordinator。

 

定位过程

Coordinator节点找到了,现在看看Coordinator是否有问题:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值