开发者社区 > 云原生 > 微服务 > 正文

微服务架构的分布式事务有什么解决方案?

分布式系统架构中,分布式事务问题是一个绕不过去的挑战。而微服务架构的流行,让分布式事问题日益突出!
在电商购物支付流程中,在各大参与者系统中可能会遇到分布式事务问题的场景有什么解决方案?

展开
收起
zht2000 2017-09-07 10:56:59 2987 0
5 条回答
写回答
取消 提交回答
  • 都是以保证最终一致性为最终目的,使用一些 tcc 的实现可以解决刚性需求

    2019-07-17 21:34:09
    赞同 展开评论 打赏
  • 通常来说分布式事务是要尽量避免的,相对的可以通过补偿和幂等,来实现最终一致性。分布式事务只适用于”同一业务实体内部,并且两个数据要求保持强一致“的情况。实际上大部分数据本以为是强一致的,但是都不一定要求强一致。例如转账,资金转出是要立刻生效的,但是资金转入可以有一定延迟。

    2019-07-17 21:34:09
    赞同 展开评论 打赏
  • 阿里云大学导师

    您好,阿里云上有全套的中间件用于解决分布式架构的问题。
    宣传视频:http://cloud.video.taobao.com/play/u/727053408/e/1/t/1/p/1/50093818.swf

    2019-07-17 21:34:09
    赞同 展开评论 打赏
  • 从一只丑小鸭蜕变成天鹅要的不仅是天生的条件,还要有后天的坚持忍耐

    假设三大参与平台(电商平台、支付平台、银行)的系统都做了分布式系统架构拆分,按上数中的流程步骤进行分析:
    1、电商平台中创建订单:预留库存、预扣减积分、锁定优惠券,此时电商平台内各服务间会有分布式事务问题,因为此时已经要跨多个内部服务修改数据;
    2、支付平台中创建支付订单(选银行卡支付):查询账户、查询限制规则,符合条件的就创建支付订单并跳转银行,此时不会有分布式事务问题,因为还不会跨服务改数据;
    3、银行平台中创建交易订单:查找账户、创建交易记录、判断账户余额并扣款、增加积分、通知支付平台,此时也会有分布式事务问题(如果是服务化架构的话);
    4、支付平台收到银行扣款结果:更改订单状态、给账户加款、给积分帐户增加积分、生成会计分录、通知电商平台等,此时也会有分布式事务问题;
    5、电商平台收到支付平台的支付结果:更改订单状态、扣减库存、扣减积分、使用优惠券、增加消费积分等,系统内部各服务间调用也会遇到分布式事问题;

    2019-07-17 21:34:09
    赞同 展开评论 打赏
  • 2019-07-17 21:34:09
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
MaxCompute架构升级及开放性解读 立即下载
MaxCompute Serverless 架构演进 立即下载
阿里云消息队列的 Serverless架构演进 立即下载