冪等性的核心特點(diǎn):任意多次執(zhí)行所產(chǎn)生的影響均與一次執(zhí)行的影響相同。
對(duì)于業(yè)務(wù)中需要考慮冪等性的地方一般都是接口的重復(fù)請(qǐng)求,重復(fù)請(qǐng)求是指同一個(gè)請(qǐng)求因?yàn)槟承┰虮欢啻翁峤?。?dǎo)致這個(gè)情況會(huì)有幾種場(chǎng)景:
1、前端重復(fù)提交:提交訂單,用戶快速重復(fù)點(diǎn)擊多次,造成后端生成多個(gè)內(nèi)容重復(fù)的訂單。
2、接口超時(shí)重試:對(duì)于給第三方調(diào)用的接口,為了防止網(wǎng)絡(luò)抖動(dòng)或其他原因造成請(qǐng)求丟失,這樣的接口一般都會(huì)設(shè)計(jì)成超時(shí)重試多次。
3、消息重復(fù)消費(fèi):MQ 消息中間件,消息重復(fù)消費(fèi)。 對(duì)于一些業(yè)務(wù)場(chǎng)景影響比較大的,接口的冪等性是個(gè)必須要考慮的問題,例如金錢的交易方面的接口。否則一個(gè)錯(cuò)誤的、考慮不周的接口可能會(huì)給公司帶來巨額的金錢損失,那么背鍋的肯定是程序員自己了。