资损事故也可以算入广义的稳定性保障的一类,但是它也有自己的一些特点,
- 感知难:
比如:商户配错价格、秒杀商品大量超卖、优惠券规则有漏洞、搜索推荐出错影响广告收入、会员未自动续期、积分算错、清结算少抽佣、黑产使用业务漏洞等,这些平台感知能力弱,技术指标不敏感,大部分是舆论爆发后人工反馈。 - 修复慢:
修复慢是因为缺少可复用预案,只能临时Fix,时间上紧迫还容易引入新的风险。 - 影响大:
涉及到钱,发现晚,修复慢,量就上去了,继而金额巨大。
所以更应该把精力投入到事前预防和尽早发现上,这样才能减少损失。
预防阶段,需要重点评估下面的风险,我们需要有风险地图,并做到防资损设计:
- 幂等
- 并发时数据正确性
- 防数据篡改
- 防金额计算错误
- 检查默认值设置
- 数据一致性
- 兼容性问题
- 防状态机错误
- 环境隔离问题
- 防返回码解析错误
- 防变更配置错误导致资损的隐患?
- ...
资损风险最终的都会反映到资金层面上,一般系统中资金的变化主要体现在:资金流、资金账户、资金计算和资金凭据,我们就需要做核验:
- 资金流:通过梳理资金的流向,来确认资金转移的等式的正确性;
- 资金账户:通过流水和记录核对资金账户数据的正确性;
- 资金计算:通过数据对比进行正确性核算,比如:需要用BIGINT记录分金额,避免浮点存储计算不精确和DECIMAL精确计算代价高的问题;
- 资金凭据:验证凭据的数据准确性以及彼此关联的数据正确性;
预案主要是止损的部分,需要具备资产冻结、资金拦截、场景降级或禁用这些预案,并做到定期演练。
总之,资金安全无小事,我们需要尊重墨菲定律,围绕可能发生的问题做足准备。
标签:方法论,正确性,防资损,凭据,资损,数据,资金 From: https://www.cnblogs.com/ghj1976/p/fang-zi-sun-fang-fa-lun.html