分布式事务实现
分布式事务的各种实现方案在这篇文章中有详细阐述,本篇文章讲述Base方案(ebay模式)在cana系统中的实践。
业务场景介绍
授信客户在还款后要恢复其授信额度,还款功能在融资管理模块实现,授信额度恢复在授信模块实现,融资管理模块和授信额度模块运行在两个服务中,由不同的开发人员维护。
Base方案应用整体介绍
融资管理模块:
- 执行还款逻辑并插入一条恢复额度的重试记录, 这些操作运行在本地事务中
- (可省略)主业务流程执行完本地事务后,向授信模块发起恢复额度同步调用;若恢复额度成功,将重试记录标记为成功,不再重试。
- 若第2步的同步调用失败或第2步未执行,后台会执行重试逻辑,直到额度恢复成功。
授信管理模块:
- 接收到请求后,先在去重表(common_properties)中查询该请求是否已经被处理过。如果已经处理过,直接返回;否则转到第2步
- 恢复额度,在去重表中插入一条记录,用于标识改请求已经被处理。
- 上述2步运行在本地事务中。