秒杀场景
针对秒杀场景,除了将库存等相关信息通过缓存增大吞吐之外,还可以采取将库存记录进行分片到不同的库表,来减少单条记录串行导致吞吐很低的场景
状态机
为什么要有状态机去梳理状态
- 清晰知道状态的变更流程
- 状态机的每个状态可以用来标识某个阶段的一致性状态,例如:预申请状态
开发:
- 在分布式事物的场景下,存有状态的流水记录需要在本地事物中去进行插入,并且流水状态变更所在的本地事物中,执行的内容就是与流水记录相关的数据的一致性状态变更为流水状态变更后的另一个一致性状态,这样的好处在于,当通过流水记录的状态,我们能够明确知道与流水相关的业务记录的数据处于何种阶段
操作流水
在操作之前先起本地事物插入流水数据
目的:为了保证数据不丢失,类似于Zk的事务请求先落log、habase、es的WAL
关于核对
核对分类
- 一致性核对
- 准确性核对
核对场景
- 跨团队协作,一个业务场景涉及到多个库表
- 库表进行了字段或者枚举的调整
举例:
在用户初次绑卡发奖场景,绑卡记录和信息存储在会员库,发奖存储在营销库,此时核对就需要监控营销发奖了,用户绑卡库中的卡号是否是只有一条且是刚绑定的卡(卡号是否匹配肯定有流水进行记录)
资损分析
场景识别
**一致性:**站点体系内部系统之间、系统内部多表之间,站点与商户,站点与渠道的数据一致性;包括状态、金额、币种、条数等。
正确性:资损相关业务正确性:资损五大类内部逻辑计算产出的,不能借由一致性核对的,均需要做正确性核对。包含:业务准入(涉及资损风险的错误码) 、业务决策(涉及资损风险的逻辑分支)、专家经验(根据业务特性总结,非代码逻辑)