背景:
商城招商系统中有一个风控模块,对于入驻商家采集征信报告,根据征信报告中司法信息给出对应的等级,决定是否可以入驻平台
如果征信等级不符合规则,可以走审批流。更改征信等级
征信报告每天可以强制更新一次,更新征信报告的同时会同步计算出征信等级。
这里可以隐约觉察到这里业务逻辑的漏洞
问题爆发:
业务反馈,某家企业征信等级是红色,走了审批之后 仍然是红色。
无法入住平台。
查看日志:
发现:sql 语句正常执行,返回结果正常。
这。。。
难道mysql 配置了自动事务,不合逻辑啊
为了确认mysql 服务本身没问题(mysql 大概率不会有问题,回想一下多次一举),找DBA 看了binlog
发现binlog 中有对应语句,再查binlog 发现
(根据binlog 确认问题原因比业务日志快很多,特别是业务日志还是原始的Linux log)
数据被再次更新了,导致业务系统看起来没有更新,
产品坑。
想这种神奇的问题,大概率是数据被再次修改了,成熟的mysql \中间件大概率不会有什么问题。
对于线上的疑难问题,一定要结合业务。