微服务故障排查

背景说明

刚刚接手一个多个团队开发3年的项目,对接了19个业态会员,深度对接了1个C端业务系统。系统以中台的形式存在------会员中台。但系统没有采用大数据中台的模式,而是采用MySQL作为所有数据承载的载体,这个也是导致后面问题发生的前置条件。

现象描述

2025年9月24号早上6点半,发现游湖北小程序无法正常访问,经过半个小时的排查发现是大会员接口连接超时,最终发现是大会员平台故障,直接表现就是7个服务中的job服务不在线了。

排查流程

第一步:服务挂了,优先重启job任务,运维同学启动job任务发现,后台jar启动正常,但Nacos中无法注册成功。

第二步:重启全部服务,结果发现job服务还是无法启动注册成功。

第三步:排查日志发现redis连接超时情况,再次重启redis,重启全部服务,最终job任务还是无法正常注册到Nacos里面。(内心开始着急了,因为系统运行2个月,目前也没有做版本升级,很奇葩,一般重启服务可以解决的)

第四步:重启Nacos。主要原因是考虑服务可以起来就是注册不成功,因此采用重启nacos怕它假死。重启之后效果是所有服务都无法注册成功(内心崩溃了O(∩_∩)O哈哈~)

第五步:MySQL数据库(依次排查就剩下它了),nacat连接数据库

查看mysql的使用进程:

show processlist

可以看到大量的Waiting for table flush 和Waiting for global read lock( 妈呀,终于找到你了

记录卡死的进程"select count(distinct(t.refund_main_id))

from third_tran_refund_main t, third_tran_main tran"

第一眼看上去,这个sql也很简单呀,怎么卡死了,先不管,kill掉进程,结果所有服务正常启动了。(暂时打通了,松了一口)

解决办法

第一步:测试验证,把"select count(distinct(t.refund_main_id))

from third_tran_refund_main t, third_tran_main tran"语句放到nacat中跑了一下,吓着了,5分钟还没有出结果,我去还真是它的问题。

第二步:检索代码,找到原因

接口类触发点

条件筛查判断点,第三方订单id为null,导致外键关联表没有关联上,最终触发sql超时请求,阻塞进程。

数据库sql语句

第三步:修改代码,外键关联前置,避免出现异常参数为NULL

打包测试环境验证,验证OK紧急升级(原版本中避免直接使用最新的代码,以生产环境的版本为主进行修改,避免二次引入,无法准确定位)

后续改进

针对数据持续增长的情况的情况,需要进行平台架构的调整。

短期快速解决方案

购买公有云数据库,可以动态实现扩展,对数据库的稳定性有比较好的帮助(例如阿里云)

设置当前数据库MySQL的慢查询监测机制,优先解决慢查询问题,避免短期卡顿

中长期解决方案

调整架构,将'商户交易汇总 ' ' 商品订单流水 ' ' 商品订单汇总 ' ' 商户订单汇总 ' ' 机构交易汇总 ' 等报表功能的数据转移到大数据中心进行处理,单表持续增加并且未来不可预期的数据进行转移。

推荐采用TDengine(涛思时序数据库),因为订单为主,修改的概率会低一些。也可以考虑 PostgreSQL作为备选方案。实现增量数据的扩展调整,避免后期数据持续增加带来的数据崩盘的现象。

相关推荐
oo哦哦19 小时前
矩阵运营的智能风控体系:2026年平台规则下的合规技术架构
人工智能·矩阵·架构
万里侯19 小时前
K8s和我:一人一狗的日常冒险
微服务·容器·k8s
high201119 小时前
【架构】-- Mysql delete vs truncate 深度解析
数据库·mysql·架构
2601_9577875819 小时前
AI数字人驱动的矩阵内容生产:2026年技术架构与人效革命
人工智能·矩阵·架构
上海云盾第一敬业销售19 小时前
DDoS防护解决方案架构解析:保障网站安全的新利器
安全·架构·ddos
靠谱品牌推荐官19 小时前
【高性能工程】每秒万次物联网数据高频握手:如何设计一套抗丢包的工业级小程序后端微服务架构?
物联网·小程序·架构
万里侯19 小时前
Kubernetes Helm Chart开发最佳实践:打造可复用的应用包
微服务·容器·k8s
fengxin_rou19 小时前
【Redis 位图分片计数详解】:原理、实战架构与避坑最佳实践
数据库·redis·架构·bitmap
靠谱品牌推荐官19 小时前
【高并发实战】如何基于缓存穿透治理机制设计一套高可用的小程序本地缓存中台架构?
缓存·小程序·架构
沪漂阿龙19 小时前
Spring Cloud 面试题深度解析:微服务架构、注册中心、配置中心、Gateway、OpenFeign、负载均衡、熔断降级全攻略
spring cloud·微服务·架构