2pc兩段提交協議
兩段提交協議裏面角色有
發起者(參與者)
: 接口調用的服務
參與者
: 發起方里進行遠程調用的接口
協調者(全局事務者)
:整個服務事務的管理方
兩段提交協議詳細說明
第一階段提交
協調者會向發起者和參與者發送一個指令,如果發起者和參與者收到指令後,都會把該業務邏輯執行完成並且成功返回給協調者。協調者在第二階段會發送提交事務通知。
如果有一方返回執行失敗,協調者會終止提交。
第二階段提交
如果發起者和參與者全部都明確返回成功,則協調者向參與者發送提交指令,發起者和參與者釋放鎖定資源。如果一個參與者或發起者明確的返回失敗,則協調者會發送終止指令。參與者和發起者都會取消已變更的事務。釋放鎖定的資源。
缺點: 如果協調者宕機了,參與者和發起者沒有協調者的指揮,就會有同步阻塞。導致鎖表的情況。所以纔有三段提交協議概念
注意:在兩段提交協議裏,是沒有超時機制的概念
應用:解決傳統項目事務 jta+Atomikos裏面使用了
ps:如果有問題請在評論下指正