分布式事务
分布式事务,常见的两个处理办法就是两段式提交和补偿。
两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉大家,一起提交,大家都提交了。
补偿比较好理解,先处理业务,然后定时或者回调里,检查状态是不是一致的,如果不一致采用某个策略,强制状态到某个结束状态(一般是失败状态),然后就世界太平了。典型的就是冲正操作。
比如对数据库来说,有redo日志的。如果某个数据库这时候宕机了,那么它重启的时候,先执行检查,也会把上一次的这些操作都提交掉的。所以各个点的数据都是一致的。
使用消息队列来避免分布式事务
如果仔细观察生活的话,生活的很多场景已经给了我们提示。
比如在北京很有名的姚记炒肝点了炒肝并付了钱后,他们并不会直接把你点的炒肝给你,而是给你一张小票,然后让你拿着小票到出货区排队去取。为什么他们要将付钱和取货两个动作分开呢?原因很多,其中一个很重要的原因是为了使他们接待能力增强(并发量更高)。
还是回到我们的问题,只要这张小票在,你最终是能拿到炒肝的。同理转账服务也是如此,当支付宝账户扣除1万后,我们只要生成一个凭证(消息)即可, 这个凭证(消息)上写着“让余额宝账户增加 1万”,只要这个凭证(消息)能可靠保存,我们最终是可以拿着这个凭证(消息)让余额宝账户增加1万的,即我们能依靠这个凭证(消息)完成最终一致性。
《大规模SOA系统中分布式事务处理》
分布式事务,常见的两个处理办法就是两段式提交和补偿。
两段式提交典型的就是XA,有个事务协调器,告诉大家,来都准备好提交,大家回复,都准备好了,然后协调器告诉大家,一起提交,大家都提交了。
补偿比较好理解,先处理业务,然后定时或者回调里,检查状态是不是一致的,如果不一致采用某个策略,强制状态到某个结束状态(一般是失败状态),然后就世界太平了。典型的就是冲正操作。
比如对数据库来说,有redo日志的。如果某个数据库这时候宕机了,那么它重启的时候,先执行检查,也会把上一次的这些操作都提交掉的。所以各个点的数据都是一致的。
使用消息队列来避免分布式事务
如果仔细观察生活的话,生活的很多场景已经给了我们提示。
比如在北京很有名的姚记炒肝点了炒肝并付了钱后,他们并不会直接把你点的炒肝给你,而是给你一张小票,然后让你拿着小票到出货区排队去取。为什么他们要将付钱和取货两个动作分开呢?原因很多,其中一个很重要的原因是为了使他们接待能力增强(并发量更高)。
还是回到我们的问题,只要这张小票在,你最终是能拿到炒肝的。同理转账服务也是如此,当支付宝账户扣除1万后,我们只要生成一个凭证(消息)即可, 这个凭证(消息)上写着“让余额宝账户增加 1万”,只要这个凭证(消息)能可靠保存,我们最终是可以拿着这个凭证(消息)让余额宝账户增加1万的,即我们能依靠这个凭证(消息)完成最终一致性。
《大规模SOA系统中分布式事务处理》
相关推荐
学习SOA分布式的不错文档 有兴趣可以看看!
大规模SOA系统中的分布事务处事_程立,分布式系统的事务处理模型介绍,XA规范,两阶段提交和三阶段提交协议!
大规模SOA系统中的分布式事务分析详解,神一样的人所著
3 SOA分布式事务解决方案 3.1 基于XA协议的两阶段提交方案 交易中间件与数据库通过 XA 接口规范,使用两阶段提交来完成一个全局事务, XA 规范的基础是两阶段提交协议。 第一阶段是表决阶段,所有参与者都将本事务...
支付宝-程立,大规模SOA系统的分布式事务处理,讲义。里面较全面的讲到了分布式事务处理的常规方法,来龙去脉。
大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf 大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf 大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf 大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf
大规模SOA系统中的分布式事务处理_程立 经典中的经典,蚂蚁CTO 分享的分布式事务解决方案
完成某一个业务功能需要横跨多个服务,操作多个数据库。这就涉及到到了分布式事务,用需要操作的资源位于多个资源服务器上,而应用需要...典型的分布式事务场景有跨库事务、分库分表、SOA服务化下的分布式事务管理。
支付宝大规模SOA系统中的分布式事务处理_程立_SD2C2008.pdf
# 该项目骨架集成了以下技术: - SpringBoot多环境配置 - SpringMVC - Spring - MyBaits - MyBatis Generator - MyBatis PageHelper - Druid - Lombok - JWT - Spring Security ...2. yaml文件 @Value获取xx.xx.xx不可行...
2008年2月支付宝程立在中国软件大会上,作的关于分布式事务的经典PPT,分布式开发者必读只经典。
学习总结 包括Java JVM MySQL NoSQL UML 缓存 消息 分布式事务 SOA 微服务 敏捷 架构设
分布式系统的事务常用处理方法! 分布式系统的事务常用处理方法! 分布式系统的事务常用处理方法! 分布式系统的事务常用处理方法!
脂肪FAT,基于springboot,使用zookeeper,redis,spring异步,spring transactionManager的强一致性分布式事务解决方案框架介绍纯编码方式,强一致性。使用redis / zookeeper作为注册中心,代理事务的执行,使用...
介绍完事务相关基本概念之后,下介绍分布式事务。分布式产背景与概念随着互联快速发展,微服务,SOA等服务架构模式正在被规模的使,现在分布式系统般由多个独的系统组成
在SOA与微服务架构大行其道的今天,在分布式的多个服务中保证业务的一致性就需要我们实现分布式事务。在文章的开头,我们已经说过事务是数据库管理系统执行过程中的一个逻辑单位,它能保证一组数据库操作要么全部...
简体中文零,SEO柔性事务,分布式事务,TCC,SAGA,可靠消息,最大努力交付消息,事务消息,补偿,分成事务,软交易,分配交易,补偿,自动补偿本框架可一站式解决分布式SOA(包括微服务等)的事务问题。一,由来及...
Dubbo + TCC分布式事务 业务细分 用户类别: 用户模块:用户+邮件,涉及用户,角色,邮件,邮件文本,余额表 产品模块:产品,涉及产品,类别表 新闻模块:新闻,涉及新闻表 订单清单:order,涉及order表 邮件样本 ...
下载全部会议资料,请点击标签 tag “CSDN 软件开发2.0技术会议” 这是支付宝首席架构师程立在 CSDN 软件开发 2.0 技术会议(SD2C 2008)上的技术演讲《大规模SOA系统中的分布事务处理》的 PPT 最后定稿。
#资源达人分享计划#