作为程序员一定要保持良好的睡眠,才能好编程

分布式通讯协议实现原理

发布时间:2019-03-28

分为两个阶段:投票表决阶段和提交阶段。


事务参与者完成系统相关业务成功后,通知协调者状态,当所有的事务参与者业务状态都成功后,


协调者才发出提交指令,参与者提交或者取消事务



 一协调者 二事务的参与者(一般有多个事务参与者),


①协调者处于init阶段,收到系统的commit请求时,向参与者多播vote-request后转入wait状态(阻塞),当接收到所有参与者的返回消息后,如果其中包含abort(终止)信息,多播global-abort,否则进入commit状态。


②参与者处于init状态,接收到协调者的vote-request消息后,发出commit然后进入ready状态,告诉协调者进入ready状态,否则返回一个abort信息,等待协调者。如果收到global-abort则进入aboort状态,如果收到global-commit则进入commit状态。


2.3pc


分为三个阶段:Cancommit阶段,Precommit状态和Docommit状态。


①    事务查询:协调者向参与者发送Cancommit请求,询问是否可以执行事务提交操作,然后开始等待参与者的响应。


        响应反馈:参与者接收到Cancommit请求后,正常情况下,如果自身认为可以执行,则响应yes,并进入预备状态,否则反馈no。



 


1 请求阶段,协调者通知事务参与者准备提交或取消事务,然后进入表决过程,在表决过程中,参与者将告知协调者自己的决策,同意或者取消


2 提交阶段 在提交阶段,协调者将根据第一阶段的决策结果,提交或者取消,当且仅当所有参与者都同意,协调者才通知所有的参与者提交或者取消事务,