下载此文档

精选微服务架构-分布式事务设计方案.docx


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7 下载此文档
文档列表 文档介绍
微效劳架构-分布式事务设计方案
微效劳–分布式事务
概念澄清
事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规那么的可逆事务.
CAP理论: CAP(Consistency, Availabi
微效劳架构-分布式事务设计方案
微效劳–分布式事务
概念澄清
事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规那么的可逆事务.
CAP理论: CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统的三个主要方面, 只能同时择其二进行实现. 常见的有CP系统, AP系统.
幂等性: 简单的说, 业务操作支持重试, 不会产生不利影响. 常见的实现方式: 为消息额外增加唯一ID.
BASE(Basically avaliable, soft state, eventually consistent): 是分布式事务实现的一种理论标准.
柔性事务 vs. 刚性事务
刚性事务是指严格遵循ACID原那么的事务, 例如单机环境下的数据库事务.
柔性事务是指遵循BASE理论的事务, 通常用在分布式环境中, 常见的实现方式有: 两阶段提交(2PC), TCC补偿型提交, 基于消息的异步确保型, 最大努力通知型.
通常对本地事务采用刚性事务, 分布式事务使用柔性事务.
最正确实践
先上结论, 再分别介绍分布式事务的各种实现方式.
如果业务场景需要强一致性, 那么尽量防止将它们放在不同效劳中, 也就是尽量使用本地事务, 防止使用强一致性的分布式事务.
如果业务场景能够接受最终一致性, 那么最好是使用基于消息的最终一致性的方案(异步确保型)来解决.
如果业务场景需要强一致性, 并且只能够进行分布式效劳部署, 那么最好是使用TCC方案而不是2PC方案来解决.
注意: 以下每种方案都有不同的适用场合, 需要根据实际业务场景来选择.
两阶段提交(2PC)
两阶段提交(Two Phase Commit, 2PC), 具有强一致性, 是CP系统的一种典型实现.
两阶段提交, 常见的标准是XA, JTA等. 例如Oracle的数据库支持XA.
示意图
图的上半是两阶段提交成功的演示, 下半是两阶段提交失败的演示. 关于两阶段提交网上有很多经典的讲解, 这里就不细说了, 可以参考前面的链接.
缺点
两阶段提交中的第二阶段, 协调者需要等待所有参与者发出yes请求, 或者一个参与者发出no请求后, 才能执行提交或者中断操作. 这会造成长时间同时锁住多个资源, 造成性能瓶颈, 如果参与者有一个耗时长的操作, 性能损耗会更明显.
实现复杂, 不利于系统的扩展, 不推荐.
TCC (Try-Confirm-Cancle)
TCC, 是基于补偿型事务的AP系统的一种实现, 具有最终一致性.
下面以客户购置商品时的付款操作为例进行讲解:
Try: 
完成所有的业务检查(一致性),预留必须业务资源(准隔离性); 
表达在本例中, 就是确认客户账户余额足够支付(一致性), 锁住客户账户, 商户账户(准隔离性).
Confirm: 
使用Try阶段预留的业务资源执行业务(业务操

精选微服务架构-分布式事务设计方案 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人朱老师
  • 文件大小426 KB
  • 时间2022-08-20
最近更新