当前位置: 首页 > news >正文

kafka怎么查看消息堆积_Kafka 线上问题: 消息堆积一直不消费, 重启服务后开始消费...

消息堆积一直不消费,感觉消费者已经死掉一样。重启服务后开始消费,

但是消费一段时间又停止。

开始尝试增加消费者数量和增加 pod(节点)数,但是都不能完全解决,异常依然存在。

通过 dump 出堆栈信息发现消费则全部处在 WAITING 状态,这个状态是挂起状态,并且是无限期等待:"kafka-coordinator-heartbeat-thread | CID_alikafka_xxx" #125 daemon prio=5 os_prio=0 tid=0x00007f1aa57fa000 nid=0x86 in Object.wait() [0x00007f1a8af80000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at java.lang.Object.wait(Object.java:502)

at org.apache.kafka.clients.consumer.internals.AbstractCoordinator$HeartbeatThread.run(AbstractCoordinator.java:920)

- locked <0x00000000e798f558> (a org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)

Locked ownable synchronizers:

- None

"kafka-coordinator-heartbeat-thread | CID_alikafka_xxx" #124 daemon prio=5 os_prio=0 tid=0x00007f1aa546b800 nid=0x85 in Object.wait() [0x00007f1a8b081000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at java.lang.Object.wait(Object.java:502)

at org.apache.kafka.clients.consumer.internals.AbstractCoordinator$HeartbeatThread.run(AbstractCoordinator.java:920)

- locked <0x00000000e798f888> (a org.apache.kafka.clients.consumer.internals.ConsumerCoordinator)

Locked ownable synchronizers:

- None

后来经过查看官方文档发现一句话:

https://docs.spring.io/spring-kafka/docs/2.6.3-SNAPSHOT/reference/html/

You should understand that the retry discussed in thepreceding sectionsuspends the consumer thread (if aBackOffPolicyis used). There are no calls toConsumer.poll()during the retries. Kafka has two properties to determine consumer health. Thesession.timeout.msis used to determine if the consumer is active. Sincekafka-clientsversion0.10.1.0, heartbeats are sent on a background thread, so a slow consumer no longer affects that.max.poll.interval.ms(default: five minutes) is used to determine if a consumer appears to be hung (taking too long to process records from the last poll). If the time betweenpoll()calls exceeds this, the broker revokes the assigned partitions and performs a rebalance. For lengthy retry sequences, with back off, this can easily happen.

消费者被挂起了,因为超过了 max.poll.interval.ms 默认五分钟,其实罪魁祸首还是拿到消息后业务处理太慢了,这块后续优化掉。

后面加大 spring.kafka.properties.max.poll.interval.ms 到 600000 (10分钟)解决。spring.kafka.producer.batch-size 150 一次性拉取消息数

spring.kafka.properties.max.poll.interval.ms 两次poll的间隔默认5分钟

spring.kafka.producer.batch-size 一次性提交大小(默认16384字节)针对消息生产者

spring.kafka.listener.concurrency 消费者数量,平均分配kafka的partition,如24个partition,此值为8,则每个消费者负责3个partition。

相关文章:

  • 豪沃轻abs12v电是什么系统_小汽车显示abs是什么问题,ABS系统介绍
  • python列表删重_python列表删除和多重循环退出原理详解
  • redis集群如果保证数据一致性_从CAP理论到分布式一致性协议
  • 影像科dsa为什么必须买维修保险_为什么大家对影像科了解得那么少呢?
  • netcore权限控制_lin-cms-dotnetcore.是如何方法级别的权限控制的?
  • 文本框 清空_只需5步,Unity中创建自滚动聊天室文本框
  • java判断是否运行在windows terminal_判断制冷空调系统是否运行正常的5个参数
  • mpa和pis_psig与mpa换算(压力单位换算psi)
  • php环境mysql 5.5安装教程_win7(64位)php5.5-Apache2.4-mysql5.6环境安装
  • mysql分组去掉重复记录_mysql去掉重复数据只保留一条,以及取分组后的一条数据...
  • 查看mysql的位数_如何查看mysql是几位的
  • mysql 视图 行号_MySQL踩坑记之视图添加行号
  • dos 前一个命令_非常实用的几个DOS命令,轻松解决电脑问题
  • shell mysql命令的参数_Linux/Unix shell 参数传递到SQL脚本
  • shell 循环 mysql_shell脚本备份mysql数据库(for循环)
  • gops —— Go 程序诊断分析工具
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Laravel Mix运行时关于es2015报错解决方案
  • laravel5.5 视图共享数据
  • Making An Indicator With Pure CSS
  • mysql 数据库四种事务隔离级别
  • nodejs:开发并发布一个nodejs包
  • Objective-C 中关联引用的概念
  • 前端技术周刊 2019-02-11 Serverless
  • 入门级的git使用指北
  • 跳前端坑前,先看看这个!!
  • 运行时添加log4j2的appender
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ###STL(标准模板库)
  • (3)nginx 配置(nginx.conf)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (三)Honghu Cloud云架构一定时调度平台
  • (一)基于IDEA的JAVA基础1
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .apk文件,IIS不支持下载解决
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .naturalWidth 和naturalHeight属性,
  • .NET : 在VS2008中计算代码度量值
  • .NET Standard 的管理策略
  • .NET 中的轻量级线程安全
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [AIGC] MySQL存储引擎详解
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [C++]18:set和map的使用
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [E链表] lc83. 删除排序链表中的重复元素(单链表+模拟)
  • [LeetCode]—Add Binary 两个字符串二进制相加
  • [Python] 输入与输出
  • [python]基于opencv实现的车道线检测
  • [Pytorch]:PyTorch中张量乘法大全
  • [Spring] Spring Boot 生态
  • [SRM603] WinterAndSnowmen
  • [Study]Vue