美文网首页互联网科技Java 杂谈
微服务架构分布式事务方案

微服务架构分布式事务方案

作者: Java入门到入坟 | 来源:发表于2019-06-05 22:41 被阅读8次

    第一节:了解常用的分布式解决方案

    一、分布式事务方案:最终一致性、事务补偿、TCC、两阶段提交、最大能力通知等。具体结合业务场景。很多大型企业自主研发了自己的分布式事务解决方案,如:支付宝 XTS,去哪儿 QMQ。

    1.基于可靠消息的最终一致性解决方案(异步确保型)(适用场景比较广)

    2.TCC事务补偿性方案(try-confirm-cancel)(也属于两阶段型的,但区别于2PC协议的两阶段提交)

    3.最大努力通知型方案(一般跨平台通知比较常用)

    第二节:解决方案效果展示(结合支付系统真实应用场景)

    一.场景(如上图)

    1、基于可靠消息最终一致性方案

    场景:对应支付系统会计异步记账业务;银行通知结果信息存储与驱动订单处理。

    2、TCC方案

    场景:对应支付系统的订单账户操作:订单处理、资金账户处理、积分账户处理。

    3、最大努力通知型方案

    场景:对应支付系统的商户通知业务场景

    二、用到的技术:

    dubbo、spring、springMVC、mybatis、druid

    jdk7(或jdk8)、mysql5.6、tomcat、兼容JMS标准的MQ(activeMQ)

    第三节:常用分布式事务方案介绍

    一、事务介绍

    1.由一组操作构成的可靠、独立的工作单元。

    2.ACID: atomicity(原子性) 、consistency(一致性)、isolation(隔离性)、durability(持久性)

    3.难点:高度并发、资源分布、大时间跨度

    二、本地事务

    1.事务由资源管理器本地管理(如:spring 注解)

    2.优点:支持严格的ACID属性、可靠、高效、状态可以只在资源管理器中维护、应用编程模型简单(在框架或平台的支持)

    3.局限:不支持分布式事务处理能力、隔离的最小单位由资源管理器决定(如:数据库中的一条记录)

    三、全局事务(DTP模型)--标准分布式事务

    四、javaEE平台中的分布式事务实现

    五、柔性事务

    1.柔性事务中的服务模式:可查询模式、幂等操作、TCC操作、可补偿操作。

    2.柔性事务解决方案:可靠消息最终一致

    3.TCC

    4.最大努力通知型

    六、总结

    常用的分布式事务解决方案:

    *刚性事务:全局事务(标准的分布式事务)

    *柔性事务:

    可靠消息最终一致(异步确认型)

    TCC(两阶段型、补偿型)

    最大努力通知型(非可靠消息、定期校对)

    相关文章

      网友评论

        本文标题:微服务架构分布式事务方案

        本文链接:https://www.haomeiwen.com/subject/ydsexctx.html