最近完成一个项目,使用springboot微服务架构。不免遇到分布式事务的难题。业务情况是:用户可以使用积分和返利来支付订单,在订单创建的事件中,需要占用积分账户和返利账户,然后消费积分,消费返利,最后完成订单创建。实际开发中,积分和返利都是另外第三方的系统,不可能提供给我们许多接口,因此,分布式事务最后采用了可靠性事件模式。总体上保证数据一致性。
专注于为中小企业提供网站设计、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业彭泽免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。本地事件表
微服务在同一个本地事务中记录业务数据和事件。
微服务实时发布一个事件立即通知关联的业务服务,如果事件发布成功立即更新记录的事件状态。
- 事件恢复服务定时从事件表中恢复未发布成功的事件,重新发布,重新发布成功才更新记录的事件状态。
补偿模式
补偿模式是更复杂的业务处理逻辑,可以允许有逆操作的业务可以使用该模式。
(微服务实现补偿操作不是简单的回退到业务发生时的状态,因为可能还有其他的并发的请求同时更改了状态。一般都使用逆操作的方式完成补偿。)补偿模式使用一个额外的协调服务来协调各个需要保证一致性的微服务,协调服务按顺序调用各个微服务,如果某个微服务调用异常(包括业务异常和技术异常)就取消之前所有已经调用成功的微服务。
TCC模式和补偿模式一样需要需要有协调服务和工作服务,协调服务也可以作为通用服务一般实现为框架。与补偿模式不同的是 TCC 服务框架不需要记录详细的业务流水,完成 confirm 和 cancel 操作的业务要素由业务服务提供。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:可靠性事件模式线上运用-创新互联
网站地址:http://scyingshan.cn/article/dihogh.html