2019独角兽企业重金招聘Python工程师标准>>>

学习以电商购物支付流程中支付系统的支付结果处理为例(学习龙果支付)

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

一、分布式事务方案:最终一致性、事务补偿、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://my.oschina.net/sundasheng44/blog/833486

微服务架构分布式事务解决方案设计思路-(概念篇)相关推荐

  1. 微服务框架 SpringCloud微服务架构 分布式事务 38 动手实践 38.2 实现XA 模式

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] 分布式事务 文章目录 微服务 ...

  2. 微服务架构下,解决数据库跨库查询的一些思路

    开局先总结一下:现在很多厂都进行了微服务的开发模式,但是呢,业务的拆分的时候如果存在交叉是一件非常头大的事情,所以大家写微服务尽量不要交叉的写,比如新增用户如果已经存在在userservice里面了那 ...

  3. SpringCloudAlibaba 微服务整合分布式事务Seata

    基于AT模式 创建undo_log(回滚日志表)表, 每个数据库需要创建 注意:UNDO_LOG Table:不同数据库在类型上会略有差别.详见官网 -- 注意此处0.7.0+ 增加字段 contex ...

  4. 阿里P9:做了6年架构设计,这次聊聊微服务与分布式事务细节

    微服务因其高内聚.低耦合.高扩展.敏捷开发为很多企业所用,当然,没有任何一项技术是完美的.系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现. 毫不夸张地说,分布式事务已 ...

  5. 微服务架构下,解决数据一致性问题的实践

    Pic by Alibaba Tech on Facebook 随着业务的快速发展,应用单体架构暴露出代码可维护性差.容错率低.测试难度大和敏捷交付能力差等诸多问题,微服务应运而生.微服务的诞生一方面 ...

  6. 微服务架构下,解决数据一致性问题的实践 1

    随着业务的快速发展,应用单体架构暴露出代码可维护性差.容错率低.测试难度大和敏捷交付能力差等诸多问题,微服务应运而生.微服务的诞生一方面解决了上述问题,但是另一方面却引入新的问题,其中主要问题之一就是 ...

  7. 微服务下分布式事务模式的详细对比

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 作为 Red H ...

  8. 微服务架构下,解决数据一致性问题的实践 2

    随着业务的快速发展,应用单体架构暴露出代码可维护性差.容错率低.测试难度大和敏捷交付能力差等诸多问题,微服务应运而生.微服务的诞生一方面解决了上述问题,但是另一方面却引入新的问题,其中主要问题之一就是 ...

  9. SpringCloud微服务架构分布式组件如何共享session对象

    参考文章: https://www.cnblogs.com/fengli9998/p/7881331.html https://blog.csdn.net/dsen726/article/detail ...

最新文章

  1. R语言使用pwr包的pwr.f2.test函数对线性回归模型(Linear models)进行效用分析(power analysis)的语法
  2. opencv图片处理和摄像头边缘检测
  3. 从无到有算法养成篇-栈和队列·栈
  4. 牛客网 【每日一题】5月26日题目精讲 [JSOI2007]建筑抢修
  5. 小白兔生小白兔-菲波拉契数列问题
  6. HTML_CSS_JS_JSON
  7. 将流数据输出到Mysql中
  8. 前缀(波兰表达式) 中缀 后缀(逆波兰表达式)
  9. 在mysql中如何添加函数库_详细讲解如何为MySQL数据库添加新函数
  10. 设计模式---工厂方法模式(c++实现)
  11. 逆向工程核心原理笔记
  12. 遗传算法matlab工具箱及其应用
  13. Aria2+Rclone教程
  14. 观 小楼老师Axure /得
  15. 如何查找一篇论文的源代码
  16. 西安航空计算机录取分数线,2019西安航空学院录取分数线及历年专业分数线统计表【文科 理科】...
  17. 怎样压缩图片?有这3种图片压缩的方法就够了
  18. 软件测试周刊(第49期):什么是大众?大众就是那些一年读书不超过五本的人。
  19. 天线接收信号、处理系统
  20. 第五章 卡耐基驾驭竞争与合作 三 征服畏惧建立自信

热门文章

  1. 越心虚越藏着掖着,越藏越掖越脱节
  2. win2k cannot set the docm proportites
  3. C++作用域为类的常量
  4. 前端每日实战:164# 视频演示如何用原生 JS 创作一个数独训练小游戏(内含 4 个视频)...
  5. LCIS code force 10D
  6. 线性方程组与基尔霍夫定律
  7. pwnable input2 之 write up
  8. 【Java TCP/IP Socket】TCP Socket通信中由read返回值造成的的死锁问题(含代码)(转)...
  9. 【AIX 命令学习】创建逻辑卷!
  10. ubuntu-14.04 系统安装mysql-5.6.21