Kafka消费者不消费数据

article/2025/8/20 22:49:33

背景:

工作往往是千篇一律,真正能学到点知识都是在上线后。使用Skywalking+Kafka+ES进行应用监控。

现象:

公司使用Skywalking在开发测试环境中Kafka顺利消费数据,到了UAT环境一开始还正常,后面接入了更多的应用后出现了问题:OAP服务正常但是ES里不再有数据。

排查:

通过查看消费者消费Kafka数据的情况可以看到,数据出现了积压。

 由于没有设置消费者的参数,所以使用的是默认值max.poll.interval.ms是5分钟、 max.poll.records是500

 目前积压数据远大于一次拉取消费的500,所以判断是因为消费者无法在等待时间内消费完数据,​Consumer ​Group Coordination消费组判定当前消费者不在消费组内,所以查询消费者状态会出现消费者组不存在消费成员(如图符合判断)

 目前解决方法:

max.poll.records改小或者 request.timeout.ms改大或者 request.timeout.ms改大,因为目前数据不稳定后续也只能通过数据量进行修改参数调优。重新开始消费,待后续观察。

结论:

由于数据量变大,消费者长时间不再请求数据,未向Group Coordinator发送心跳请求,所以kafka认为消费者已从消费组下线。所以不再进行消费。

学习:

之前知识浅浅了解了Rebalance,但没碰到过。所以借此好好学习一下。

一、什么是Rebalance

  • Rebalance本质上是一种协议, 规定了一个Consumer Group下的所有consumer如何达成一致,来分配订阅Topic的每个分区。

  • Rebalance发生时, 所有的Consumer Group都停止工作, 直到Rebalance 成。

二、触发条件

① 组成员个数发生变化

  • 新的消费者加入到消费组

  • 消费者主动退出消费组

  • 消费者被动下线。比如消费者长时间的GC, 网络延迟导致消费者长时间未向Group Coordinator发送心跳请求, 均会认为该消费者已经下线并踢出(本次问题出现的原因)

② 订阅的Topic的Consumer Group个数发生变化

③ Topic 的分区数发生变化

三、Rebalance的弊端

  1. rebalance的时候消费组内的所有消费者都不能处理消息
  2. 消费组内的消费者越多rebalance时间越长
  3. Rebalance 效率不高。当前 Kafka 的设计机制决定了每次 Rebalance 时,Consumer Group 下的所有成员都要参与进来,而且通常不会考虑局部性原理,但局部性原理对提升系统性能是特别重要的。

四、如何避免Rebalance

从触发条件可以看到,① 、 ② 、③基本都是可以认为尽量避免也就是提前根据数据量规划好消费者数量,主要是① 中的第三个,需要靠kafka的参数去调整

# 心跳相关
session.timeout.ms = 6s
heartbeat.interval.ms = 2s
# 消费数量(默认500)
max.poll.records
# 消费时间(默认300000)
request.timeout.msmax.poll.interval.ms=300000

 

五、Rebalance过程

Coordinator服务

  • Group Coordinator 是一个服务, 每个 Broker 在启动的时候都会启动一个该服务 Group Coordinator 的作用是用来存储 Group 的相关 Meta 信息, 并将对应 Partition 的 Offset 信息记录到 Kafka 内置 Topic(__consumer_offsets)中

  • Kafka 在0.9之前是基于 Zookeeper 来存储Partition的 offset 信息(consumers/{group}/offsets/{topic}/{partition}), 因为 Zookeeper 并不适用于频繁的写操作, 所以在0.9之后通过内置 Topic 的方式来记录对应 Partition 的 offset。

Rebalance过程分为两步:Join Group和 Sync Group

Join Group

① 概述

  • Join Group 顾名思义就是加入组。

  • 这一步中, 所有成员都向 Coordinator 发送 JoinGroup 请求, 请求加入消费组。

  • 一旦所有成员都发送了 JoinGroup 请求, Coordinator 会从中选择一个 Consumer 担任 Leader 的角色, 并把组成员信息以及订阅信息发给 Consumer Leader。

  • 注意Consumer Leader 和 Coordinator不是一个概念。Consumer Leader负责消费分配方案的制定。

② 流程图

 Sync Group

① 概述

  • Consumer Leader 开始分配消费方案,即哪个 Consumer 负责消费哪些 Topic 的哪些 Partition。

  • 一旦完成分配,Consumer Leader 会将这个方案封装进SyncGroup请求中发给 Coordinator。

  • 非 Consumer Leader 也会发 SyncGroup 请求, 只是内容为空。

  • Coordinator 接收到分配方案之后会把方案塞进SyncGroup的Response中发给各个Consumer。

  • 这样组内的所有成员就都知道自己应该消费哪些分区了。

② 流程图

参考:Kafka学习笔记 NO.004 Kafka的Rebalance(重平衡) - 墨天轮


http://chatgpt.dhexx.cn/article/nFsmd3Oc.shtml

相关文章

食品品牌如何做好消费需求洞察直抵消费者心智

做生意的都明白这样一个道理:“先找到买主,再依照需求出售”。之所以这一点很重要,因为这揭示了一条经营企业过程中必须遵守的金科玉律:先有需求,而后才有你的品牌、服务或功能。 需求洞察是品牌、产品、服务等一切的…

消费者洞察:数据影响消费,消费营造数据

本文根据Stratifyd资深解决方案经理段鑫龙(Bruce Duan)在9月24日的直播演讲内容整理,演讲围绕“如何洞察消费者”从四个层面展开:首先是(疫情期间以及后疫情时代)消费品行业的发展现状和未来趋势;然后是当前现状下如何通过数据化闭环洞察消费者;有了前面的理论支撑和方…

助力品牌洞察——消费者情绪行为分析

什么是情绪分析? 随着社交网络和数字营销的出现,消费者对产品和品牌的评价受到越来越多的关注。在线用户反馈(例如产品评价、社交媒体评论和调查问卷等)包含了大量具有价值的数据。通过这些数据,可以了解消费者对您产…

数据分析:消费者数据分析

数据分析:消费者数据分析 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏&#x1f4c1…

消费者洞察:案例透视消费者洞察实践与收益

本文根据Stratifyd资深解决方案经理段鑫龙(Bruce Duan)在“如何洞察您的消费者”直播课主题演讲整理。点击链接(https://live.vhall.com/534333188)查看完整演讲视频,关注Stratifyd微信公众号并在后台回复“粉丝群”,还可进群申领演讲课件,及时关注Stratifyd最新培训资讯…

消费者洞察:一文看懂消费者是如何做选择的

作者:付永承 全文共 4214 字,阅读需要 9 分钟 ———— / BEGIN / ———— “为什么有时候明明比对手更有优势,产品就是无人问津?” “为什么花了那么多广告费,销量怎么就是上不来?” “为什么之前的营销…

消费者洞察:数据化闭环洞察消费者

本文根据Stratifyd资深解决方案经理段鑫龙(Bruce Duan)在“如何洞察您的消费者”直播课主题演讲整理。上周我们通过“数据影响消费,消费营造数据”这篇文章了解了消费品行业的发展现状,新生代互联网消费者更乐于分享表达,然而消费者触点分散,对企业洞察消费者、了解消费者…

系统资源不足,无法完成请求服务。

使用visual studio 编译时: 清理了磁盘…重装了VS2019 没用… 后来一个学长说试试卸载McAfee well done!

win10突然提示系统资源不足,无法完成请求服务的解决方法(VS)win10跑代码变慢

大概率是McAfee搞得鬼 解决方法:点击PC安全-实时扫描-关闭 电脑也快多了,跑代码也快了很多 直接卸载McAfee也可

c语言无纸化软件系统资源不足,系统资源不足无法完成请求的服务怎么办_系统资源不足卸载迈克菲解决教程 - 系统家园...

最近很多用户在问小编系统资源不足无法完成请求的服务怎么解决,小编电脑没有遇到这个问题,但是看到了贴吧很多小伙伴都有这个问题,发现有个共性就是装了迈克菲McAfee杀毒防护软件,下面快点来看看怎么解决问题吧。 系统资源不足卸载…

windows远程拷贝和解压大文件异常:系统资源不足无法完成请求的服务

windows服务器异常:系统资源不足无法完成请求的服务 Insufficient system resources exist to complete the requested service. by qunying.liu(刘群英) 问题描述: 开发人员需要将线上环境windows的某些数据文件复制到开发环境windows用于测试&#xff…

c语言无纸化软件系统资源不足,win10系统安装软件显示“系统资源不足,无法完成请求的服务”的解决方法...

相信不少网友在win10系统安装软件时都遇到过“系统资源不足,无法完成请求的服务”的情况,到底是怎么回事?检查内存空间都足够大的,其实往往导致这一问题的不是存储空间不足问题,而是病毒问题。知道原因后,问…

c语言无纸化软件系统资源不足,win10系统安装软件显示“系统资源不足,无法完成请求的服务”的解决方法-系统城...

相信不少网友在win10系统安装软件时都遇到过“系统资源不足,无法完成请求的服务”的情况,到底是怎么回事?检查内存空间都足够大的,其实往往导致这一问题的不是存储空间不足问题,而是病毒问题。知道原因后,问…

打开U盘 提示 服务器无法运行,win10打开u盘提示“系统资源不足 无法完成请求的服务”怎么办...

一位用户在windows10系统电脑上连接U盘后,发现打开时总会弹出“位置不可用”的提示框,提示:无法访问X:\ 系统资源不足 无法完成请求的服务,这是怎么回事呢?其实,该问题是u盘损坏或内存配置过小所导致的。下…

瑞友服务器系统资源不足,win10/win7打开软件提示系统资源不足,无法完成请求服务的解决方法...

作者:陈俊 日期:2017-11-12 12:32 近期有些win7、win10用户莫名的遇到了一个问题,就是打开疯狂的美工软件的时候提示系统资源不足,无法完成请求服务,刚开始以为是系统缺少了某些组件,结果发现是国外杀毒 迈克菲(McA…

系统使用一段时间就出现“系统资源不足,无法完成请求的服务”

2019独角兽企业重金招聘Python工程师标准>>> 系统使用一段时间后,就会出现这个问题,导致电脑无法在打开软件,网络连接禁止使用,无法进行关机。只能强制关机。 经查证,发现System的句柄数在一直增加。增加到…

win10计算机资源不足无法登陆,win10电脑安装软件提示“系统资源不足,无法完成请求的服务”如何解决...

我们经常会在电脑中安装软件,不过有时候并没有那么顺利,比如有win10系统用户反映说在电脑中安装软件的时候,提示“系统资源不足,无法完成请求的服务”,导致无法安装软件,经过检查发现是病毒问题&#xff0c…

吃鸡显示服务器资源不足,win7系统玩吃鸡提示系统资源不足无法完成请求的服务如何解决...

有不少win7系统玩家反映说在电脑中玩吃鸡游戏的时候,却遇到提示系统资源不足无法完成请求的服务的情况,该怎么解决这样的问题呢,本文就给大家讲解一下win7系统玩吃鸡提示系统资源不足无法完成请求的服务的具体解决步骤吧。 情况一、 启动项加…

共享访问出错:系统资源不足,无法完成请求的服务

共享访问出错:系统资源不足,无法完成请求的服务 公司的PDM系统因业务需要,存放电子图纸的空间越来越小,为了不至于影响公司生产,特早早做了未来三到五年的扩展申请,大概是:公司原是七块300G的SAS硬盘组的RA…

win server服务器 关闭危险端口 135,137,138,139,445的方法

Windows默认开放135、137、138、139和445五个端口,都与文件共享和打印机共享有关的,若机器连接网络后会在用户不知道的情况下泄露本机部分信息,这样会给用户带来一部分危险,所以我们在工作中根据自己的需求定位一下是否需要关闭这…