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

[线上问题排查参考 | 01]

一、排查方案流程、思路:

  1. 通过日志平台、Grafana监控、K8s容器命令(jps、top -Hp、jstack)定位问题根源,明确阻塞节点与资源泄漏原因。
  2. 紧急修复:利用Arthas热替换MsgSender.class,新增MQ发送超时设置,取消队列满时的同步发送逻辑(改为直接丢弃),快速恢复服务可用性。
  3. 彻底解决:待RabbitMQ集群恢复后,发布正式版本,包含完善的超时配置、移除异步转同步逻辑,从根源避免问题复发。

二、告警原因分析:拉紧急会议、组成分析小组、检查规范、做好留存:规范大致如下,

  1. 中间件使用:所有网络中间件(MQ、缓存等)必须配置超时时间,确保故障时快速失败,不阻塞业务线程。
  2. 事务操作:禁止在数据库事务内执行耗时操作(如网络请求、消息发送),避免长事务占用连接池。
  3. 消息发送:消息SDK摒弃“异步转同步”机制;可靠消息采用“先落表再异步发送”方案,非可靠消息可直接丢弃。
  4. 监控预警:新增数据库长事务、连接池使用率、中间件运行状态等监控指标,搭建提前预警体系。
  5. 应急修复:通过Arthas热替换等紧急修复技术,确保中间件故障时可独立恢复核心服务。
  6. 服务依赖:核心服务启动不依赖非核心中间件,通过降级、熔断机制保障服务基础可用性。

三、解决办法
根据告警原因排查结果,我们分三层推进:立即救火、根因修复、运行保障。

  1. 立即救火
  • 入口限流与反压:收敛并发,采用有界队列、合理 acceptCount、拒绝策略或暂停上游;连接池设置较短 maxWait,失败快返。
  • 超时统一:DB/HTTP/MQ/缓存统一超时;消息发送设置发送超时;取消队列满时的“异步转同步”;非可靠消息直接丢弃。
  • 热修复与证据:优先抓取线程快照与池指标;必要时用 Arthas 热替换修复 MsgSender 或配置项;removeAbandoned 仅在排查期开启并记录泄漏栈。
  1. 根因修复
  • 事务边界:事务内不做网络请求或消息发送;慢操作移出事务;结合 SLA/吞吐设定 @Transactional 与 queryTimeout。
  • 消息可靠:可靠消息采用“先落表再异步发送”,补偿与幂等到位;彻底移除“异步转同步”。
  • 连接与代码规范:全面采用 try-with-resources/模板类;禁止 ThreadLocal/跨线程传递连接;keepAlive 配合半开连接探测与服务端心跳。
  • 容量模型:线程池、acceptCount 与连接池容量、峰值 QPS、P95 延迟、CPU 核数建立映射,参数以测算为准而非示例值。
  1. 运行保障
  • 监控预警:长事务、Active/WaitThreadCount、Borrow/Return 速率、中间件状态设置阈值预警;定期复盘泄漏栈。
  • 启动去耦与韧性:核心服务启动不依赖非核心中间件;按模块配置降级与熔断,故障域隔离。
  • 压测与演练:灰度验证修复效果;加入故障注入(下游变慢/断链)验证“快失败、必归还、反压”生效。
http://www.jsqmd.com/news/167266/

相关文章:

  • 免费开源!Stable Diffusion AI 生图天花板,下载安装一款能免费部署的 AI 绘图神器
  • GitHub Pull Request流程:贡献Miniconda相关开源项目
  • 2025大模型完全指南:从原理到实战,一篇就够了,建议收藏学习!初识大模型(非常详细)
  • GitHub Issue模板设计:标准化反馈Miniconda使用问题
  • numa balancing缺陷分析
  • 制剂处方数据库【制剂组分研究】
  • 如何在实际项目中应用 MyVector 类?
  • 2025年东莞线对板连接器厂家口碑洞察报告:从技术到服务的专业选型指南 - 品致汇
  • Linux终端操作进阶:自动化脚本部署Miniconda环境
  • vector模拟实现与核心机制
  • yolov5识别demo
  • 在Miniconda中安装FastAPI构建RESTful接口
  • python基于校园学生行为大数据的精准分析管理系统
  • Python安装后无法导入模块?Miniconda-Python3.10修复sys.path
  • springboot的马术俱乐部管理系统设计与实现
  • conda list与pip list输出差异原因分析
  • Java学习!
  • C/C++复杂类型声明解读:从优先级看螺旋法则 - 24
  • 经营帮集中采购:中小企业采购降本的实用选择
  • 哈基米噢南北绿豆-beta冲刺
  • 必知!哪家实验室净化超靠谱
  • Docker restart policy设置:Miniconda-Python3.10容器自动恢复
  • 102302112王光诚综合实践
  • 《程序员修炼之道:从小工到专家》观后感第八篇
  • Markdown TOC自动生成:Miniconda-Python3.10配合tocmd工具使用
  • Miniconda初始化失败?详解conda init命令执行逻辑
  • AWMS 目录
  • AWMS 目录
  • Windows本地微调大模型全攻略:从零打造你的专属猫娘AI助手
  • PyTorch模型量化压缩:Miniconda-Python3.10降低推理成本