理解冪等問題

什么是冪等

計(jì)算機(jī)和數(shù)據(jù)的專業(yè)術(shù)語,這里展開計(jì)算機(jī)中冪等的概念,編程中冪等操作的特點(diǎn)是一次執(zhí)行與多次執(zhí)行產(chǎn)生的影響相同。百度百科的解釋是:冪等函數(shù),或冪等方法,是指可以使用相同參數(shù)重復(fù)執(zhí)行,并能獲得相同結(jié)果的函數(shù)。這些函數(shù)不會(huì)影響系統(tǒng)狀態(tài),也不用擔(dān)心重復(fù)執(zhí)行會(huì)對(duì)系統(tǒng)造成改變。例如,“setTrue()”函數(shù)就是一個(gè)冪等函數(shù),無論多次執(zhí)行,其結(jié)果都是一樣的.更復(fù)雜的操作冪等保證是利用唯一交易號(hào)(流水號(hào))實(shí)現(xiàn)。

數(shù)據(jù)庫冪等

多次更新同一記錄,數(shù)據(jù)庫冪等產(chǎn)生一樣的影響,但是數(shù)據(jù)庫壓力成倍增長,給線上DB帶來意想不到的災(zāi)難,對(duì)于更新操作通常采用樂觀鎖的方式,就是版本號(hào)+1

update tbl_user where status='on', version=version+1 where id = 1 and version=1;

去重表

利用數(shù)據(jù)庫表單的特性實(shí)現(xiàn)冪等操作,比如在表上建立唯一性索引,保證記錄一旦執(zhí)行完成,后續(xù)操作無法成功寫入。

token機(jī)制

token使用的比較廣泛,使用范圍廣,有不同的實(shí)現(xiàn)版本。核心思想是每次操作產(chǎn)生一個(gè)唯一性的憑證,就是token。一個(gè)token早操作的每個(gè)階段都用一次執(zhí)行權(quán)力,一旦執(zhí)行完成,保存結(jié)果。多重復(fù)的請(qǐng)求,返回該結(jié)果即可。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容