常用系統冪等設計總結

2021-10-07 11:12:26 字數 748 閱讀 2509

冪等性是系統服務對外一種承諾,承諾只要呼叫介面成功,外部多次呼叫對系統的影響是一致的。宣告為冪等的服務會認為外部呼叫失敗是常態,並且失敗之後必然會有重試。

序號

方法

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 會受到單機服務能力上限的限制。另外,隨著 微服務 概念的火爆,很多應用在構建之初就已經走在了分布式的路線上了,所...