XA协议 性能不佳; 最佳实践:仅在同一个事务上下文中需要协调多种资源(即数据库,以及消息主题或队列)时,才有必要使用X/Open XA接口。 基于消息中间件的两阶段提交协议:RocketMQ基于此;在高并发场景下,将一个分布式事务拆成一个消息事务(A系统的本地操作+发消息)+B系统的本地操作,不是 ...
分类:
其他好文 时间:
2018-12-14 13:58:44
阅读次数:
191
根据微服务架构的鼻祖 Martin Fowler 的忠告,微服务架构中应当尽量避免分布式事务。然而,在某些领域,分布式事务如同宿命中的对手无法避免。 在工程领域,分布式事务的讨论主要聚焦于强一致性和最终一致性的解决方案。 典型方案包括: 两阶段提交(2PC, Two-phase Commit)方案。 ...
分类:
其他好文 时间:
2018-11-03 14:09:51
阅读次数:
151
一句话总结:分布式事务业界主流方案:两阶段提交方案(包括XA方案和TCC方案)、消息队列方案。 1、两阶段提交方案 1.1 XA方案 XA协议流程可以查看作者另一篇“2PC两阶段提交协议”,XA方案是资源层的两阶段提交,通常应用于多数据库操作的场景,如Mysql 5.5版本以上Innodb引擎原生支 ...
分类:
其他好文 时间:
2018-10-18 16:58:17
阅读次数:
172
用于执行分布式事务的过程使用两阶段提交,发生时间在由分布式事务的各个分支需要进行的行动已经被执行之后。 在第一阶段,所有的分支被预备好。即它们被 TM 告知要准备提交。通常,这意味着用于管理分支的每个 RM 会记录对于被稳定保存的分支的行动。分支指示是否它们可以这么做。这些结果被用于第二阶段。 在第 ...
分类:
其他好文 时间:
2018-09-15 23:26:52
阅读次数:
200
在分布式系统中,著有CAP理论,该理论由加州大学伯克利分校的Eric Brewer教授提出,该理论阐述了在一个分布式系统中不可能同时满足一致性(Consistency)、可用性(Availability),以及分区 容错性(Partition tolerance)。 一致性在分布式系统中数据往往存在 ...
分类:
其他好文 时间:
2018-07-03 15:15:56
阅读次数:
172
随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。 为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。 ...
分类:
其他好文 时间:
2018-05-09 14:33:59
阅读次数:
137
在两阶段提交协议(Two Phase Commitment Protocol,2PC)中,把分布式事务的某一个代理指定为协调者(Coordinator),所有其他代理称为参与者(Participant)。这里的代理是指完成各个子事务的进程。只有协调者才拥有提交或撤销事务的决定权,而其他参与者各自负责 ...
分类:
其他好文 时间:
2018-04-20 10:16:00
阅读次数:
146
数据库的事务保证: 1、先记日志,记录好日志后,并写入磁盘(不怕各种异常)假如在执行过程中出了问题,就按照日志进行各种后续的操作 数据库的2PC(两阶段提交) XA Transactions 2、分布式事务、 两阶段提交 2pc 3、把分布式事务 -变为本地事务 + 消息记录 缺点: 消息表会耦合到 ...
分类:
其他好文 时间:
2018-04-11 15:50:49
阅读次数:
178
概念: XA(分布式事务)规范主要定义了(全局)事务管理器(TM: Transaction Manager)和(局部)资源管理器(RM: Resource Manager)之间的接口。XA为了实现分布式事务,将事务的提交分成了两个阶段:也就是2PC (tow phase commit),XA协议就是 ...
分类:
数据库 时间:
2018-04-07 22:56:48
阅读次数:
414
两阶段提交 Two-phase Commit(2PC):保证一个事务跨越多个节点时保持 ACID 特性; 两类节点:协调者(Coordinator)和参与者(Participants),协调者只有一个,参与者可以有多个。 过程: 准备阶段:协调者询问参与者事务是否执行成功; 提交阶段:如果事务在每个 ...
分类:
其他好文 时间:
2018-04-01 21:50:48
阅读次数:
234