背景 數據庫
在業務開發中,咱們常會面對防止重複請求的問題。當服務端對於請求的響應涉及數據的修改,或狀態的變動時,可能會形成極大的危害。重複請求的後果在交易系統、售後維權,以及支付系統中尤爲嚴重。
前臺操做的抖動,快速操做,網絡通訊或者後端響應慢,都會增長後端重複處理的機率。 後端
重複消息是SOA服務實現中很是常見的問題,你永遠不要期望調用方每次請求消息不同,對於讀操做,重複消息可能無害,可對於寫操做極可能就是災難。 網絡
能夠經過冪等(Idempotent)模式處理重複的消息,基本處理思路是:冪等方案 分佈式
對時間全局性要求高的,可能就必須選擇DB這種持久化方案比較可靠,可是性能不夠好啊(而後就要考慮loadmemory,以及數據同步的問題,就一步還要考慮實時性要求了)。在空間的要求中,根據不一樣的冪等範圍,能夠考慮分佈式數據庫(分佈式集羣全局流水號冪等)。仍是某種少許數據冪等(可能只須要單臺,作好主備)。 性能
數據的對象和範圍
spa