可能引发资损的问题
大约 1 分钟架构技术Case
以下通过特定场景分析问题。
1. 内部系统逻辑错误
- 费率单位换算:人为操作失误,如错输费率。
- 金额单位换算:统一金额单位,使用元或者分。
2. 系统接口交互
- 重复请求、并发:防重表或数据库对商户号+业务流水号做唯一索引约束,控制请求的是否重发
- 并发请求:借助Redis分布式锁或者MySQL数据库排他锁
- 交互结果的返回码:记录业务流水记录,设置处理中状态,根据上游通知或者主动查询确定终态;明确调用接口返回码的含义,区分是通讯结果还是业务结果,根据对应的返回码确定(含可重试的)失败、成功。
3. 系统漏洞、系统风控
- 伪造请求:时间戳或者签名(RSA、HMAC、MD5)
- 运营人员处理异常交易:权限,白名单,预防和监控
- 内部人员调用系统:权限,白名单,预防和监控
- 内部人员调数据库:权限,白名单,预防和监控