直播軟件開發(fā),你知我知大家知的接口冪等性
所謂的接口冪等性,主要是指在直播軟件開發(fā)時(shí),保證同一接口多次發(fā)出的相同請(qǐng)求,系統(tǒng)只會(huì)執(zhí)行一次。尤其是像直播軟件開發(fā)的支付接口、訂單接口等,如果無法保證接口冪等性,就會(huì)影響用戶的使用體驗(yàn),甚至導(dǎo)致用戶出現(xiàn)財(cái)產(chǎn)損失。

一、接口冪等性問題出現(xiàn)的原因
1、當(dāng)直播軟件處于網(wǎng)絡(luò)不穩(wěn)定的環(huán)境中時(shí),就有可能會(huì)導(dǎo)致直播軟件開發(fā)的接口重復(fù)發(fā)出請(qǐng)求,產(chǎn)生接口冪等性問題。
2、用戶在使用直播軟件開發(fā)的某個(gè)功能時(shí),無意識(shí)多次觸發(fā)了某個(gè)請(qǐng)求。
3、用戶在使用程序時(shí)進(jìn)行了多次的頁面刷新操作。
4、當(dāng)直播軟件開發(fā)的失效或超時(shí)重試機(jī)制發(fā)揮作用時(shí)。
5、當(dāng)直播軟件開發(fā)的定時(shí)任務(wù)出現(xiàn)重復(fù)執(zhí)行情況時(shí)。
6、用戶在退出某頁面時(shí),再次重復(fù)之前的操作,導(dǎo)致請(qǐng)求被重復(fù)提交,也有可能會(huì)產(chǎn)生接口冪等性問題。
當(dāng)然,除了以上列出的原因之外,導(dǎo)致接口冪等性問題產(chǎn)生的原因還有很多。

二、保證接口冪等性的方法
1、按鈕只可操作一次
在直播軟件開發(fā)時(shí),可以對(duì)頁面中的按鈕進(jìn)行設(shè)置,當(dāng)用戶通過按鈕達(dá)成一次提交操作后,就將按鈕置灰或置于進(jìn)行中狀態(tài),以此來避免因用戶多次點(diǎn)擊導(dǎo)致記錄重復(fù)。
2、樂觀鎖
如果是更新直播軟件開發(fā)中已經(jīng)存在的數(shù)據(jù),則可以通過在設(shè)計(jì)表結(jié)構(gòu)時(shí)使用樂觀鎖的方式進(jìn)行數(shù)據(jù)的加鎖更新,以此保證接口的冪等性。
3、分布式鎖
如果直播軟件開發(fā)采用的是分布式系統(tǒng),則可以通過分布式鎖的引用,保證接口冪等性。
4、防重表
在直播軟件開發(fā)的支付系統(tǒng)中,就可以通過使用唯一主鍵的方式去做防重表的唯一索引,像每一筆交易的訂單號(hào)就是防重表唯一索引的一種形式。
5、緩沖隊(duì)列
在直播軟件開發(fā)時(shí),可以實(shí)現(xiàn)一個(gè)緩沖隊(duì)列,然后將所有接收到的請(qǐng)求都放到緩沖隊(duì)列中,然后再通過異步任務(wù)處理隊(duì)列中的數(shù)據(jù),在處理過程中直接將重復(fù)的請(qǐng)求過濾掉,以此保證接口冪等性。

雖然在直播軟件開發(fā)中,保證接口冪等性是你知我知大家知的事情,但如何保證接口冪等性卻是很大一部分糾結(jié)的難題,除了以上幾種保證接口冪等性的方式之外,在直播軟件開發(fā)中,其實(shí)還潛藏著很多方法等待我們?nèi)ネ诰颉?br>
聲明:本文由云豹科技原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者名及原文鏈接,否則視為侵權(quán)
?
?
?
?
?