短視頻直播系統(tǒng),冪等真有那么重要嗎?
在短視頻直播系統(tǒng)中,遠(yuǎn)程調(diào)用服務(wù)可能會出現(xiàn)成功、失敗、超時(shí)這三種不同的狀態(tài),如果遠(yuǎn)程調(diào)用服務(wù)處于超時(shí)狀態(tài)下系統(tǒng)一般會自動發(fā)起重試機(jī)制,但前面超時(shí)的請求如果在重試后也提交成功則會出現(xiàn)請求被重復(fù)提交的情況,而冪等就是為了避免這種情況的發(fā)生。

一、接口超時(shí)的處理方案
由于網(wǎng)絡(luò)等因素的影響,短視頻直播系統(tǒng)在調(diào)用下游接口時(shí)可能會出現(xiàn)超時(shí)的情況,在發(fā)生接口超時(shí)后,應(yīng)該采用哪些處理方案呢?
1、下游接口提供一個(gè)對應(yīng)的查詢接口
如果在短視頻直播系統(tǒng)中出現(xiàn)接口超時(shí)情況時(shí),可以通過查詢接口查詢對應(yīng)的記錄,如果能查到對應(yīng)記錄則代表該調(diào)用成功,如果沒有查詢到對應(yīng)記錄則代表該調(diào)用失敗,然后再發(fā)起重試。
2、發(fā)起重試
如果短視頻直播系統(tǒng)下游接口支持冪等,則可以直接在調(diào)用接口超時(shí)時(shí)發(fā)起重試。
二、設(shè)計(jì)冪等的常用方案
1、全局唯一主鍵ID
在短視頻直播系統(tǒng)中可以通過生成全局唯一主鍵ID的方式來設(shè)計(jì)冪等,利用全局唯一主鍵ID去標(biāo)記各個(gè)請求,保證請求的唯一性,該實(shí)現(xiàn)方式通常適用于插入操作、刪除操作等。

2、樂觀鎖
對于短視頻直播系統(tǒng)中的更新操作,可以通過數(shù)據(jù)庫樂觀鎖來設(shè)計(jì)冪等,提前在對應(yīng)的數(shù)據(jù)表中多添加一個(gè)字段,作為當(dāng)前數(shù)據(jù)的版本標(biāo)識。
3、Token令牌
在短視頻直播系統(tǒng)開發(fā)時(shí),可以利用Token令牌設(shè)計(jì)冪等,該方式適用于系統(tǒng)中的插入操作、更新操作、刪除操作等。
三、短視頻直播系統(tǒng)設(shè)計(jì)冪等的影響
雖然冪等能避免請求重復(fù)提交等問題,但在設(shè)計(jì)冪等后也會增加短視頻直播系統(tǒng)服務(wù)端的邏輯復(fù)雜性和成本,主要原因有兩個(gè):
1、在設(shè)計(jì)了冪等后很多并行執(zhí)行的功能就會被改為串行,從而導(dǎo)致了執(zhí)行效率的降低。
2、在設(shè)計(jì)了冪等后會增加冪等相關(guān)的業(yè)務(wù)邏輯,從而提升了短視頻直播系統(tǒng)的業(yè)務(wù)邏輯復(fù)雜性。

冪等設(shè)計(jì)雖然很重要,但在短視頻直播系統(tǒng)開發(fā)時(shí),還是得結(jié)合實(shí)際的業(yè)務(wù)場景去分析,在必要的場景下實(shí)現(xiàn)冪等,在非必要的業(yè)務(wù)場景中避免實(shí)現(xiàn)冪等。其實(shí)很多技術(shù)的選擇也是如此,在合適的場景下使用合適的技術(shù)才能提升短視頻直播系統(tǒng)開發(fā)質(zhì)量。
聲明:本文由云豹科技原創(chuàng),轉(zhuǎn)載請注明作者名及原文鏈接,否則視為侵權(quán)
短視頻直播系統(tǒng),冪等真有那么重要嗎?的評論 (共 條)
