一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

什么是分布式系統(tǒng)中的冪等性

 lguo001 2019-07-20

最近很多人都在談?wù)搩绲刃?,好吧,這回我也來聊聊這個話題,光看著倆字,一開始的確有點一頭霧水,語文不好嘛,詞太專業(yè)嘛,對吧

現(xiàn)如今我們的系統(tǒng)大多拆分為分布式SOA,或者微服務(wù),一套系統(tǒng)中包含了多個子系統(tǒng)服務(wù),而一個子系統(tǒng)服務(wù)往往會去調(diào)用另一個服務(wù),而服務(wù)調(diào)用服務(wù)無非就是使用RPC通信或者restful,既然是通信,那么就有可能再服務(wù)器處理完畢后返回結(jié)果的時候掛掉,這個時候用戶端發(fā)現(xiàn)很久沒有反應(yīng),那么就會多次點擊按鈕,這樣請求有多次,那么處理數(shù)據(jù)的結(jié)果是否要統(tǒng)一呢?那是肯定的!尤其再支付場景。

冪等性:就是用戶對于同一操作發(fā)起的一次請求或者多次請求的結(jié)果是一致的,不會因為多次點擊而產(chǎn)生了副作用。舉個最簡單的例子,那就是支付,用戶購買商品使用約支付,支付扣款成功,但是返回結(jié)果的時候網(wǎng)絡(luò)異常,此時錢已經(jīng)扣了,用戶再次點擊按鈕,此時會進(jìn)行第二次扣款,返回結(jié)果成功,用戶查詢余額返發(fā)現(xiàn)多扣錢了,流水記錄也變成了兩條...

在以前的單應(yīng)用系統(tǒng)中,我們只需要把數(shù)據(jù)操作放入事務(wù)中即可,發(fā)生錯誤立即回滾,但是再響應(yīng)客戶端的時候也有可能出現(xiàn)網(wǎng)絡(luò)中斷或者異常等等。

在增刪改查4個操作中,尤為注意就是增加或者修改,

查詢對于結(jié)果是不會有改變的,

刪除只會進(jìn)行一次,用戶多次點擊產(chǎn)生的結(jié)果一樣

修改在大多場景下結(jié)果一樣

增加在重復(fù)提交的場景下會出現(xiàn)

那么如何設(shè)計接口才能做到冪等呢?

方法一、單次支付請求,也就是直接支付了,不需要額外的數(shù)據(jù)庫操作了,這個時候發(fā)起異步請求創(chuàng)建一個唯一的ticketId,就是門票,這張門票只能使用一次就作廢,具體步驟如下:

  1. 異步請求獲取門票

  2. 調(diào)用支付,傳入門票

  3. 根據(jù)門票ID查詢此次操作是否存在,如果存在則表示該操作已經(jīng)執(zhí)行過,直接返回結(jié)果;如果不存在,支付扣款,保存結(jié)果

  4. 返回結(jié)果到客戶端

如果步驟4通信失敗,用戶再次發(fā)起請求,那么最終結(jié)果還是一樣的

方法二、分布式環(huán)境下各個服務(wù)相互調(diào)用

這邊就要舉例我們的系統(tǒng)了,我們支付的時候先要扣款,然后更新訂單,這個地方就涉及到了訂單服務(wù)以及支付服務(wù)了。

用戶調(diào)用支付,扣款成功后,更新對應(yīng)訂單狀態(tài),然后再保存流水。

而在這個地方就沒必要使用門票ticketId了,因為會比較閑的麻煩

(支付狀態(tài):未支付,已支付)

步驟:

1、查詢訂單支付狀態(tài)

select for update

2、如果已經(jīng)支付,直接返回結(jié)果

3、如果未支付,則支付扣款并且保存流水

4、返回支付結(jié)果

如果步驟4通信失敗,用戶再次發(fā)起請求,那么最終結(jié)果還是一樣的

對于做過支付的朋友,冪等,也可以稱之為沖正,保證客戶端與服務(wù)端的交易一致性,避免多次扣款。

最后來看一下我們的訂單流程,雖然不是很復(fù)雜,但是最后在支付環(huán)境是一定要實現(xiàn)冪等性的

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    熟女乱一区二区三区四区| 91精品国产综合久久福利| 又大又紧又硬又湿又爽又猛| 久久偷拍视频免费观看| 黄片三级免费在线观看| 国产又色又爽又黄又大| 国产午夜精品久久福利| 国产精品自拍杆香蕉视频| 精产国品一二三区麻豆| 91偷拍与自偷拍精品| 午夜福利视频偷拍91| 蜜桃av人妻精品一区二区三区| 亚洲中文字幕高清乱码毛片| 人妻亚洲一区二区三区| 91麻豆精品欧美一区| 国产免费观看一区二区| 伊人天堂午夜精品草草网| 亚洲天堂精品在线视频| 精品推荐久久久国产av| 久久综合九色综合欧美| 国产精品亚洲二区三区| 噜噜中文字幕一区二区| 少妇人妻一级片一区二区三区 | 国产成人精品午夜福利| 久久精品a毛片看国产成人| 麻豆国产精品一区二区三区| 欧美午夜一级艳片免费看| 中文字幕日韩精品人一妻| 日韩高清毛片免费观看| 五月婷婷欧美中文字幕| 中文字幕免费观看亚洲视频| 国产在线一区二区三区不卡| 国产美女网红精品演绎| 人人爽夜夜爽夜夜爽精品视频| 国产91色综合久久高清| 国产熟女一区二区不卡| 日本不卡在线一区二区三区| 日韩国产亚洲欧美激情| 99精品人妻少妇一区二区人人妻| 丁香六月啪啪激情综合区| 午夜视频成人在线观看|