2PC:
第一阶段是提交事务请求:
1.首先就是事务询问,协调者向参与者发送事务内容,询问是否可以执行事务提交操作,并开始等待各参与者响应。
2.然后就是执行事务,各参与者节点执行事务操作,并将undo和redo信息计入事务日志中。
3.最后就是各参与者向协调者反馈事务询问的响应,如果参与者成功执行了事务操作,那么就反馈反馈给协调者YES响应,表示事务可以执行;如果参与者没有成功执行事务,那么反馈给协调者NO响应,表示事务不可以执行。
第二阶段是执行事务提交(如果所有参与者在第一阶段都响应YES):
1.首先由协调者向所有参与者节点发出commit请求。
2.参与者接收到commit请求后,会正式执行事务提交操作,并在完成提交后释放在整个事务执行期间占用的事务资源。
3.然后参与者在完成事务提交之后,向协调者发送确认ack消息。4.协调者接收到所有参与者反馈的ack消息后,完成事务。
- 优点是:原理简单,实现方便。 <