分布式系统常见的事务处理机制

  • 时间:
  • 浏览:1

在 doCommit 阶段,而且参与者无法及时接收到来自协调者的 doCommit 而且 rebort 请求时,会在听候超时并且 ,会继续进行事务的提交。即当进入第三阶段时,而且网络超时等愿因,实在参与者没有收 到 commit 而且 abort 响应,事务仍然会提交。

Paxos 算法是 Leslie Lamport 于1990年提出的一种生活 基于消息传递且具有层厚容错底部形态的一致性算法。Paxos 算法目前在 Google 的 Chubby、MegaStore、Spanner 等系统中得到了应用,Hadoop 中的 ZooKeeper 也使用了 Paxos 算法。

算法不还能能 分为一个多多阶段来执行:

而且协调者收到了参与者的失败消息而且超时,直接给每个参与者发送回滚(Rollback)消息;而且,发送提交(Commit)消息;参与者根据协调者的指令执行提交而且回滚操作,释放所有事务除理过程中使用的锁资源。(注意:不还能能 在最后阶段释放锁资源)

实在,数据的一致性也分几种情况汇报,大致不还能能 分为:

许多机制的特点是:

当协调者节点从所有参与者节点获得的相应消息都为“同意”时:

执行提交

显然,为了保障性能和可靠性,我们都都我们都我们都 将数据克隆好友多份,分布到多个节点上,并肩也带来了一个多多难点,那越多越多我怎么才能 才能 保持各个副本数据的一致性。换句话说,我们都都我们都我们都 选用了 AP ,则不还能能 要牺牲掉 C 了。

二段式提交协议的优缺点:

为保障系统的可用性、可靠性以及性能,在分布式系统中,往往会设置数据冗余,即对数据进行克隆好友。举例来说,当一个多多数据库的副本被破环并且 ,没有系统只不还能能 转换到许多数据副本就能继续运行下去。另外一个多多例子,当访问单一服务器管理的数据的应用程序数不断增加时,系统就不还能能 对服务器的数量进行扩充,此时,对服务器进行克隆好友,并且让它们分担工作负荷,就不还能能 提高性能。但并肩,怎么才能 才能 保障多个数据节点之间数据的一致以及怎么才能 才能 除理分布式事务,将成为为一个多多复杂语录题。本文将介绍常用的事务除理机制。

三阶段提交协议(Three-phase commit protocol,3PC),是二阶段提交(2PC)的改进版本。与两阶段提交不同的是,三阶段提交一个多多多改动点:

而且任一参与者节点在第一阶段返回的响应消息为”中止”,而且 协调者节点在第一阶段的询问超时并且 无法获取所有参与者节点的响应消息时:

Slave 一般是 Master 的备份。在越多越多我的系统中,一般是如下设计的:

协调者根据参与者的反应情况汇报来决定与非 不还能能 记性事务的 PreCommit 操作。根据响应情况汇报,有以下一种生活 而且。

为了除理两阶段提交协议的种种问题,研究者们在二阶段提交的基础上做了改进,提出了三阶段提交。

也越多越多我说,在设计分布式系统时,我们都都我们都我们都 无须一定要求是强一致性的,根据应用场景不还能能 选用弱一致性而且是最终一致性。

CanCommit 阶段实在和 2PC 的准备阶段很像。协调者向参与者发送 commit 请求,参与者而且不还能能 提交就返回 Yes 响应,而且返回 No 响应。

许多机制的缺点是,而且 Master 挂了,Slave 只有提供读服务,而没有写服务。

而且,在实际的应用场景中,数据的一致性往往也是不还能能 保证的。没有这与非 违背了 CAP 定理呢?

假使 协调者从所有的参与者获得的反馈都是 Yes 响应,没有就会执行事务的预执行。

缺点:

许多机制的特点是:

优点:原理简单,实现方便;

事务有如下作用:

指一个多多系统处在一个多多或多个Master,每个Master都提供读写服务。许多机制是Master-Slave的加强版,数据间同步一般是通过Master间的异步完成,越多越多是最终一致性。 Master-Master的好处是,一台Master挂了,别的Master不还能能 正常做读写服务,他和Master-Slave一样,当数据没有被克隆好友到别的Master上时,数据会丢失。越多越多数据库都支持Master-Master的Replication的机制。

即 3PC 把 2PC 的准备阶段再次一分为二,越多越多我三阶段提交都是 CanCommit、PreCommit、DoCommit 一个多多阶段。

在 Paxos 算法中,分为4种角色:

中断事务:协调者没有接收到参与者发送的 ACK 响应(而且是接受者发送的都是 ACK 响应,也而且响应超时),没有就会执行中断事务。

两阶段提交协议 (Two-phase commit protocol,2PC)的过程涉及到协调者和参与者。协调者不还能能 看做成事务的发起者,并肩也是事务的一个多多参与者。对于一个多多分布式事务来说,一个多多事务是涉及到多个参与者的。具体的两阶段提交的过程如下:

不管最后结果怎么才能 才能 ,第二阶段都是开始英文当前事务。

三阶段提交不需要老会 持有事务资源并处在阻塞情况汇报。而且许多机制也会愿因数据一致性问题,而且,而且网络愿因,协调者发送的 abort 响应没有及时被参与者接收到,没有参与者在听候超时并且 执行了 commit 操作,越多越多我就和许多接到 abort 命令并执行回滚的参与者之间处在数据不一致的情况汇报。

该阶段进行真正的事务提交,可是 需要 分为以下一种生活 情况汇报。

CAP 定理(也称为 Brewer 定理),是由计算机科学家 Eric Brewer 提出的,即在分布式计算机系统不而且并肩提供以下全版一个多多保证: