前某公司一次线上问题解决的旅程
背景:
在前某公司的 2B 业务某服务做测试工作,基本业务为上游收到消息后,发给本系统,本系统处理结束后消息发给下游
问题的出现:
- 本系统处理新消息时报 Exception,未能入库和计算,push 了下游不能预料的消息给下游
- 下游采取了默认路径处理该消息
当时处理:
- 发生问题后,迅速修改代码和上线,半小时左右问题消失
- 需要重新处理这半个小时的业务
后续处理:
- ELK log 系统通过 elastic search 工具抽取所有业务数据,并去重 - 测试做
- 同步 ELK log 系统抽取最早的一份异常数据,分析 log,并开发程序将 log 重新整理为 rabbitMQ 的标准报文格式 - 开发做
- 1 的文件经 2 的程序处理后获得裸报文数据文件 - 开发做
- 通过 postman 批量发送 3 获得的消息,触发重新入库,计算和发布消息 - 测试做
一些想法:
- ELK 的 log 过滤和分析还是很好用的
- message 是分布式系统的基本功
- 谈责任,开发测试反目成仇;谈补救,上阵亲兄弟各司其职
现在滚蛋了,还是很感恩和几个好兄弟一起做项目的时光啊