分布式事務前瞻-接口冪等性


接口冪等性不只是分布式事務方便回滾的保證,同時也是SOA服務實現中摒除重復消息的保證。

現產品都是走DUBBO,調用超時重試3次這個常見吧,莫名的網絡問題就會引起。所以永遠不要指望調用方每次請求消息不一樣,對於讀操作,重復消息可能無害,可對於寫操作很可能就是災難。

 

冪等性是系統的接口對外一種承諾(而不是實現), 承諾只要調用接口成功, 外部多次調用對系統的影響是一致的。(聲明為冪等的接口會認為外部調用失敗是常態, 並且失敗之后必然會有重試。這一重試就是分布式事務沖正(或者叫補償)的一種方式

 

舉個例子更能說明:

 

一個冪等的操作典型如:
把編號為5的記錄的A字段設置為0

這種操作不管執行多少次都是冪等的。


一個非冪等的操作典型如:
把編號為5的記錄的A字段增加1

這種操作顯然就不是冪等的。

 

要做到冪等性,從接口設計上來說不設計任何非冪等的操作即可。


譬如說需求是:
當用戶點擊贊同時,將答案的贊同數量+1。
改為:
當用戶點擊贊同時,確保答案贊同表中存在一條記錄,用戶、答案。
贊同數量由答案贊同表統計出來。

 

 

IT運營新世界大會:廣通軟件開啟雙態運維大時代


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM