最近完成一个项目,使用springboot微服务架构。不免遇到分布式事务的难题。业务情况是:用户可以使用积分和返利来支付订单,在订单创建的事件中,需要占用积分账户和返利账户,然后消费积分,消费返利,最后完成订单创建。实际开发中,积分和返利都是另外第三方的系统,不可能提供给我们许多接口,因此,分布式事务最后采用了可靠性事件模式。总体上保证数据一致性。
<人力资源/><代码>本地事件表代码>
-
<李>
微服务在同一个本地事务中记录业务数据和事件。
李> <李>微服务实时发布一个事件立即通知关联的业务服务,如果事件发布成功立即更新记录的事件状态。
李> <李>事件恢复服务定时从事件表中恢复未发布成功的事件,重新发布,重新发布成功才更新记录的事件状态。李>?