冪等性是系統服務對外一種承諾,承諾只要呼叫介面成功,外部多次呼叫對系統的影響是一致的。宣告為冪等的服務會認為外部呼叫失敗是常態,並且失敗之後必然會有重試。
序號
方法
1
2
1頁面防止重複提交
頁面防止重複提交
2token機制
token存session
token存redis
3資料庫去重
唯一索引
聯合唯一索引
4悲觀鎖
資料庫更新上鎖
5樂觀鎖
cas條件更新
cas條件更新帶版本
6分布式鎖
redis實現
zk實現
7select + insert
資料先查詢,存在再執行
8狀態機冪等
狀態流轉有偏序關係
9對外提供介面的api如何保證冪等
**系統+seq_no唯一
存redis,先查詢,再處理
**系統+seq_no唯一
存mysql先查詢,再處理
10唯一id
生成唯一id存redis的集合中去重
參考:
高併發下介面冪等性解決方案:
分布式系統中介面的冪等性:
如何保證介面的冪等性 :
重複提交 系統冪等性設計
http 1.1中對冪等性的定義是 一次和多次請求某乙個資源對於資源本身應該具有同樣的結果 網路超時等問題除外 也就是說,其任意多次執行對資源本身所產生的影響均與一次執行的影響相同。簡單來說,是指無論呼叫多少次都不會有不同結果的 http 方法。業務開發中,經常會遇到重複提交的情況,無論是由於網路問...
系統冪等以及常用實現方式
現在稍具規模的 和大型應用都不再是單機模式,而是分布式應用,基於多機的集群構建的應用,這樣服務能力就可以基本實現橫向擴容 scale out 不會像單機模式下的縱向擴容 scale up 會受到單機服務能力上限的限制。另外,隨著 微服務 概念的火爆,很多應用在構建之初就已經走在了分布式的路線上了,所...
系統冪等以及常用實現方式
現在稍具規模的 和大型應用都不再是單機模式,而是分布式應用,基於多機的集群構建的應用,這樣服務能力就可以基本實現橫向擴容 scale out 不會像單機模式下的縱向擴容 scale up 會受到單機服務能力上限的限制。另外,隨著 微服務 概念的火爆,很多應用在構建之初就已經走在了分布式的路線上了,所...