微服务架构-分布式事务设计方案(共6页).docx
《微服务架构-分布式事务设计方案(共6页).docx》由会员分享,可在线阅读,更多相关《微服务架构-分布式事务设计方案(共6页).docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上微服务分布式事务概念澄清 事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规则的可逆事务. CAP理论: CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统的三个主要方面, 只能同时择其二进行实现. 常见的有CP系统, AP系统. 幂等性: 简单的说,业务操作支持重试, 不会产生不利影响. 常见的实现方式: 为消息额外增加唯一ID. BASE(Basically avaliable, soft state, eventually consistent): 是分布式
2、事务实现的一种理论标准.柔性事务 vs. 刚性事务刚性事务是指严格遵循ACID原则的事务, 例如单机环境下的数据库事务.柔性事务是指遵循BASE理论的事务, 通常用在分布式环境中, 常见的实现方式有: 两阶段提交(2PC), TCC补偿型提交, 基于消息的异步确保型, 最大努力通知型.通常对本地事务采用刚性事务, 分布式事务使用柔性事务.最佳实践先上结论, 再分别介绍分布式事务的各种实现方式. 如果业务场景需要强一致性, 那么尽量避免将它们放在不同服务中, 也就是尽量使用本地事务, 避免使用强一致性的分布式事务. 如果业务场景能够接受最终一致性, 那么最好是使用基于消息的最终一致性的方案(异步
3、确保型)来解决. 如果业务场景需要强一致性, 并且只能够进行分布式服务部署, 那么最好是使用TCC方案而不是2PC方案来解决.注意: 以下每种方案都有不同的适用场合, 需要根据实际业务场景来选择.两阶段提交(2PC)两阶段提交(Two Phase Commit, 2PC), 具有强一致性, 是CP系统的一种典型实现.两阶段提交, 常见的标准是XA, JTA等. 例如Oracle的数据库支持XA.示意图图的上半是两阶段提交成功的演示, 下半是两阶段提交失败的演示. 关于网上有很多经典的讲解, 这里就不细说了, 可以参考前面的链接.缺点 两阶段提交中的第二阶段, 协调者需要等待所有参与者发出yes
4、请求, 或者一个参与者发出no请求后, 才能执行提交或者中断操作. 这会造成长时间同时锁住多个资源, 造成性能瓶颈, 如果参与者有一个耗时长的操作, 性能损耗会更明显. 实现复杂, 不利于系统的扩展, 不推荐.TCC (Try-Confirm-Cancle)TCC, 是基于补偿型事务的AP系统的一种实现, 具有最终一致性.下面以客户购买商品时的付款操作为例进行讲解: Try:完成所有的业务检查(一致性),预留必须业务资源(准隔离性);体现在本例中, 就是确认客户账户余额足够支付(一致性), 锁住客户账户, 商户账户(准隔离性). Confirm:使用Try阶段预留的业务资源执行业务(业务操作必
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微服 架构 分布式 事务 设计方案
限制150内