这一年让我印象深刻的bug --外部接口请求失败问题

1 业务场景

     我们有个需求是外部客户需要在我们系统创建一个账号。业务流程如下在这里插入图片描述
但是我们运行一段时间后发现一个问题,有客户反创建客户账号时,提示账号已经存在,但是我们系统却查不到单号

2 问题分析

     经分析报错来源于权限系统,我们仔细分析下流程就会发现,很有可能是传给权限成功但入库失败导致的。因为我们入库失败外部接口不知道这时候导致权限接口创建成功但是我们系统没有。

3 解决办法

      经分析我们发现数据入库跟调用权限系统必须有事务性,要么全部成功要么全失败,想到这里就好办了,如下时序图,我们吧代用外部系统放在数据入库后面就行了,如果调用外部系统失败我们就报错这时候利用数据库事务回滚将存入库的数据回滚掉。如果调用外部系统成功那说明数据库已经入库成功
在这里插入图片描述

4 总结

  1. 调用外部系统要注意事务一致性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值