故事前传
公司带项目带了一年多,从立项开始到后期推广历时1年半总算是小有起色并且稳定运行了,由于此次疫情原因,导致项目某一产品功能用户量激增,由1000多数据增加到7000多然后造成了数据库单表死锁影响了缴费业务,事故等级提高,影响恶劣。
事故处理顺序
- 事故发生一周内,先是定时执行数据库进程处理脚本,防止由于数据库死锁造成其他业务无法使用,服务崩塌;梳理故障业务逻辑,拆分事务细粒,减少事务时长,调整代码结构,先查询后修改原则。同时使用数据库管理员级别调查事务死锁源头。
排查数据库问题。 - 第二周出现业务高峰期服务稳定,早晨数据库死锁,使用jconsole工具,配合脚本定位出问题的代码行,分析业务,排查原因。解决。
精盐
- 复杂业务逻辑要拆分,低耦合,减少事务时间
- 避免事务乱用
- 定期代码review
少年需要精进业务能力
网友评论