标签:调度 方便 ack 同步 com 获取 消息 节点 逻辑
2PC:在分布式系统中,每一个机器节点虽然能够明确的知道自己在进行事物操作过程的结果是失败或成功,但却无法直接获取其他分布式节点的操作结果,因此事物操作需要跨越多个分布式节点的时候,需要引入一个协调者统一调度所有节点的执行逻辑。
协调者向所有的参与者发送事物内容,询问是否可以执行事物操作,并开始等待各参与者的响应。
各参与者节点执行事物操作,并将Undo和Redo信息记入事物日志中
如果参与者成功执行了事物操作,那么就反馈给协调者Yes响应,表示事物可以执行;如果参与者没有成功执行事物,那么就反馈给协调者No响应,表示事物不可以执行。
在阶段二中协调者会根据参与者的反馈情况来决定最终是否可以进行事物操作,其中有两种可能。
假如协调者从所有的参与者获得的反馈都是Yes响应,那么就会执行事物响应。
协调者向所有参与者节点发出Commit请求
参与者接收到Commit请求后,会正式执行事物提交操作,并在完成提交之后释放在整个事物执行期间占有的事物资源。
参与者在完成事物提交之后,向协调者发送Ack消息。
协调者接收到所有参与者反馈的Ack消息后,完成事物。
优缺点
标签:调度 方便 ack 同步 com 获取 消息 节点 逻辑
原文地址:https://www.cnblogs.com/we9999/p/12395200.html