1. 程式人生 > 其它 >分散式事務解決方案-2pc/3pc

分散式事務解決方案-2pc/3pc

什麼是2pc?

2PC 即兩階段提交協議,將整個事務流程分為兩個階段:準備階段、提交階段

1.準備階段本地事務向協調者傳送處理結果

2.提交階段階段協調者根據結果執行提交或回滾

有一個問題:如果傳送者傳送的請求因為網路原因,導致本地事務沒有接收到,後果就是

本地事務一直阻塞,所以誕生了3pc

什麼是3pc?

將2pc的提交階段進行拆分(確認所有本地事務能夠接受到commit),核心是預提交pre-commit返回ACK

什麼是tcc?

補償機制
tcc:try,confirm,cancel
try:預處理 寫業務檢查的邏輯程式碼(一致性),預留必須的業務資源(準隔離性) 鎖定資源
confirm:確認(如果成功了,執行confirm)


cancel:取消(如果失敗了,執行cancel)釋放Try階段預留的業務資源
缺點:
  需要寫大量的補償程式碼
  在訊息中介軟體中可能出現問題(A傳送以後就不管了,B可能收到多個訊息,也可能收不到資訊)