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

  • 时间:
  • 浏览:0
  • 来源:大发彩神苹果下载_大发神彩苹果下载官方

中断事务:协调者那末 接收到参与者发送的 ACK 响应(可能性是接受者发送的时会 ACK 响应,也可能性响应超时),那末 就会执行中断事务。

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

即 3PC 把 2PC 的准备阶段再次一分为二,原来三阶段提交时会 CanCommit、PreCommit、DoCommit 有有一八个 阶段。

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

显然,为了保障性能和可靠性,亲戚亲戚朋友将数据克隆好友多份,分布到多个节点上,一并也带来了有有一八个 难点,那某些怎么还可以保持各个副本数据的一致性。换句话说,亲戚亲戚朋友取舍了 AP ,则都要要牺牲掉 C 了。

这俩机制的特点是:

在 doCommit 阶段,可能性参与者无法及时接收到来自协调者的 doCommit 可能性 rebort 请求时,会在等候超时后来,会继续进行事务的提交。即当进入第三阶段时,可能性网络超时等因为 ,真是参与者那末 收 到 commit 可能性 abort 响应,事务仍然会提交。

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

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

CAP 定理(也称为 Brewer 定理),是由计算机科学家 Eric Brewer 提出的,即在分布式计算机系统可能性性一并提供以下完整版有有一八个 保证:

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

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

也某些说,在设计分布式系统时,亲戚亲戚朋友不必说一定要求是强一致性的,根据应用场景还都要取舍弱一致性可能性是最终一致性。

该阶段进行真正的事务提交,也还都要分为以下一种情况汇报。

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

这俩机制的特点是:

这俩机制的缺点是,可能性 Master 挂了,Slave 那末 提供读服务,而那末 写服务。

不管最后结果怎么还可以,第二阶段时会 结束了当前事务。

事务有如下作用:

三阶段提交不必总爱持有事务资源并趋于稳定阻塞情况汇报。否则 这俩机制也会因为 数据一致性问题图片图片,可能性,可能性网络因为 ,协调者发送的 abort 响应那末 及时被参与者接收到,那末 参与者在等候超时后来执行了 commit 操作,原来就和某些接到 abort 命令并执行回滚的参与者之间趋于稳定数据不一致的情况汇报。

真是,数据的一致性也分几种情况汇报,大致还都要分为:

协调者根据参与者的反应情况汇报来决定是算是还都要记性事务的 PreCommit 操作。根据响应情况汇报,有以下一种可能性。

指有有一八个 系统趋于稳定有有一八个 或多个Master,每个Master都提供读写服务。这俩机制是Master-Slave的加强版,数据间同步一般是通过Master间的异步完成,某些是最终一致性。 Master-Master的好处是,一台Master挂了,别的Master还都要正常做读写服务,他和Master-Slave一样,当数据那末 被克隆好友到别的Master上时,数据会丢失。某些数据库都支持Master-Master的Replication的机制。

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

执行提交

Slave 一般是 Master 的备份。在原来的系统中,一般是如下设计的:

算法还都要分为有有一八个 阶段来执行:

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

Paxos 算法是 Leslie Lamport 于1990年提出的一种基于消息传递且具有深度1容错价值形式的一致性算法。Paxos 算法目前在 Google 的 Chubby、MegaStore、Spanner 等系统中得到了应用,Hadoop 中的 ZooKeeper 也使用了 Paxos 算法。

否则 ,在实际的应用场景中,数据的一致性往往也是都要保证的。那末 这是算是违背了 CAP 定理呢?

否则协调者从所有的参与者获得的反馈时会 Yes 响应,那末 就会执行事务的预执行。

缺点:

CanCommit 阶段真是和 2PC 的准备阶段很像。协调者向参与者发送 commit 请求,参与者可能性还都要提交就返回 Yes 响应,否则 返回 No 响应。

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