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

【记某次线上消息积压问题排查及解决方案】

一、消息积压

某版本需求,代码处理逻辑错误,导致配置新增服务范围扩大,造成消息成百倍增长,突增的消息通道部分拥堵。新增的服务会不断重试并重推消息,造成更严重的任务拥堵,无法及时消费,数据库压力增大,SQL执行变慢,导致核心业务受阻。

二、排查指导

1:消息运维平台查看消息的消费状态

了解了问题的现象之后,明确了是生产上线的新业务后开始出现消息积压,通过运维平台可视化功能,查询消息topic对应的堆积数量,重试新增数量(1h)、死信新增数量(1h)。

2:数据管家平台分析SQL性能

在管家平台查询慢SQL情况,定位执行频繁且时间过长的异常SQL。

3:定位业务代码

根据异常SQL和堆积topic定位业务代码,找出代码逻辑问题根因。

三、整改方案

1:消息配置

通过在消息定义基础表中,设置特定服务的触发消息、路由消息、分发消息的topic字段,将其与普通消息隔离

2:增加消息过滤机制

在消息处理之前先通过业务逻辑对消息进行过滤,如果是无效消息或过期消息,则直接跳过业务处理,避免发送消息占用服务资源

3:根据消息优先级设置MQ处理优先级

通过根据消息的重要性和紧急程度,调整消息的优先级,优先处理重要或紧急消息,确保核心业务的及时性。而对于非关键消息,可以演示处理,避免大量非关键消息写入队列影响核心关键消息的消费。

http://www.dtcms.com/a/289096.html

相关文章:

  • 基于Pytorch的人脸识别程序
  • 基于FPGA实现ARINC818
  • Milvus Dify 学习笔记
  • Unity学习笔记(五)——3DRPG游戏(2)
  • DFS 迷宫问题 难度:★★★★☆
  • Python适配器模式详解:让不兼容的接口协同工作
  • CSS中Padding与Margin的区别
  • 机器学习-线性回归
  • 【数据结构】「队列」(顺序队列、链式队列、双端队列)
  • ubuntu24.04安装CUDA和VLLM
  • 企业级安全威胁检测与响应(EDR/XDR)架构设计
  • WireShark抓包分析TCP数据传输过程与内容详解
  • 多目标轨迹优化车道变换规划:自动驾驶轨迹规划新范式:基于Frenet坐标系的车道变换算法全解析
  • Node.js Express keep-alive 超时时间设置
  • spring boot2升级boot3
  • Linux简单了解历史
  • 大数据之路:阿里巴巴大数据实践——离线数据开发
  • RTC外设详解
  • Unity 新旧输入系统对比
  • XSS内容总结
  • 包装类型+泛型+List+ArrayList
  • [CVPR]DVFL-Net:用于时空动作识别的轻量级蒸馏视频调焦网络
  • 连接语言大模型(LLM)服务进行对话
  • vben-admin 导入并使用基础版的vxe-table
  • 【LeetCode 热题 100】236. 二叉树的最近公共祖先——DFS
  • oracle 11g drop user 失败,报错ORA-00600
  • jxORM--编程指南
  • EXPLAIN:你的SQL性能优化透视镜
  • 【Docker-Day 7】揭秘 Dockerfile 启动指令:CMD、ENTRYPOINT、ENV、ARG 与 EXPOSE 详解
  • 软件测试-Bug