單價(jià): | 面議 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 廣東 廣州 |
有效期至: | 長(zhǎng)期有效 |
發(fā)布時(shí)間: | 2023-11-30 05:40 |
最后更新: | 2023-11-30 05:40 |
瀏覽次數(shù): | 121 |
采購咨詢: |
請(qǐng)賣家聯(lián)系我
|
上門陪玩app開發(fā),軟件搭建,程序制作、系統(tǒng)設(shè)計(jì)彧昪翀
像游戲陪玩源碼這種涉及訂單交易的程序,在開發(fā)時(shí)需要特別注意重復(fù)提交問題,前端提交后鎖住按鈕或服務(wù)端加上判斷等方式,雖然可以起到作用,但只能解決一部分問題,并不能完美解決,那么在游戲陪玩源碼開發(fā)中還可以采用什么方式呢?
一、服務(wù)端收到重復(fù)請(qǐng)求的可能場(chǎng)景
1、如果游戲陪玩源碼前端把關(guān)不嚴(yán),就有可能會(huì)出現(xiàn)用戶點(diǎn)擊完提交按鈕,但提交按鈕未被禁用的情況,在這種情況下,如果用戶點(diǎn)擊多次提交按鈕,就會(huì)向服務(wù)端發(fā)起多次請(qǐng)求。
2、如果游戲陪玩源碼程序出現(xiàn)錯(cuò)誤或遇到攻擊行為,就會(huì)出現(xiàn)對(duì)同一業(yè)務(wù)發(fā)起多次服務(wù)請(qǐng)求的情況。
3、如果在游戲陪玩源碼前端或后端設(shè)置的重試邏輯發(fā)生異常,就會(huì)出現(xiàn)一次業(yè)務(wù)多次請(qǐng)求服務(wù)的情況。
4、如果在游戲陪玩源碼的多線程和分布式環(huán)境下,由于數(shù)據(jù)一致性導(dǎo)致重復(fù)判斷失效,就會(huì)出現(xiàn)業(yè)務(wù)被重復(fù)處理的情況。
二、用限流解決重復(fù)提交問題
1、前端把關(guān)不嚴(yán)
在游戲陪玩源碼開發(fā)服務(wù)端時(shí),可以對(duì)用戶提交的時(shí)間跨度進(jìn)行限流,例如設(shè)置為5秒1次,則用戶在5秒內(nèi)只能進(jìn)行一次提交操作,如果出現(xiàn)了重復(fù)提交操作前端會(huì)向用戶提示服務(wù)端返回的錯(cuò)誤碼,并跳轉(zhuǎn)到結(jié)果查詢頁面。
2、程序出現(xiàn)錯(cuò)誤
在游戲陪玩源碼開發(fā)時(shí),服務(wù)端可以對(duì)同一用戶的提交進(jìn)行時(shí)間跨度的限流,在規(guī)定時(shí)間內(nèi)如果出現(xiàn)了重復(fù)提交的情況則給予像增加限流時(shí)限這種類型的限流懲罰,,以此來降低外部程序異常為服務(wù)的影響。
3、程序重試
在游戲陪玩源碼中,只需要在業(yè)務(wù)的發(fā)起處進(jìn)行重試設(shè)置,像中間服務(wù)發(fā)起提交行為就沒有必要進(jìn)行重試設(shè)置,限流處理可以在上層引入,并針對(duì)合適的限流目標(biāo)設(shè)置適合的限流閾值和限流時(shí)間跨度,像比較可靠的內(nèi)部服務(wù)就沒有引入限流的必要。
4、重復(fù)判斷失效
在游戲陪玩源碼中,可以通過分布式一致性的限流算法保證重復(fù)判斷結(jié)果的有效性,在規(guī)定的時(shí)間段內(nèi)只進(jìn)行一次提交操作,這樣業(yè)務(wù)就不會(huì)被重復(fù)處理了。
其實(shí)限流也并不是解決重復(fù)提交問題完美的方式,但卻是一種通用且成本很低的方式,相比其他方法而言,限流能在有限的成本中,很大程度的降低重復(fù)提交。限流在實(shí)現(xiàn)時(shí),還需要游戲陪玩源碼前后端的其他配合,這樣才能發(fā)揮出更好的效果。