短視頻開發(fā),高并發(fā)下系統(tǒng)服務(wù)的自我保護(hù)機(jī)制
在某些情況下用戶的訪問流量是無法預(yù)估的,如果訪問流量超過了系統(tǒng)的可承載范圍,極有可能會(huì)導(dǎo)致系統(tǒng)的不可用,為避免該情況,在短視頻開發(fā)時(shí),需要做好高并發(fā)場(chǎng)景下的系統(tǒng)服務(wù)自我保護(hù)機(jī)制。

一、限流
1、被動(dòng)限流
在短視頻開發(fā)中我們可以通過定義閾值和規(guī)則、自適應(yīng)限流策略等方式進(jìn)行系統(tǒng)承載能力的衡量:
(1)定義閾值和規(guī)則:該方式需要根據(jù)人工經(jīng)驗(yàn)定制,所以靈活性不高,而且對(duì)請(qǐng)求反饋的靈敏度和資源的利用率也不夠。
(2)自適應(yīng)策略:該方式是一種動(dòng)態(tài)限流策略,可根據(jù)系統(tǒng)單簽的運(yùn)行情況,動(dòng)態(tài)地進(jìn)行限流閾值的調(diào)整,使用起來更靈活。
2、主動(dòng)限流
由于短視頻開發(fā)的絕大部分業(yè)務(wù)系統(tǒng)間存在著依賴關(guān)系,所以系統(tǒng)間的處理能力會(huì)互相受到影響,此時(shí)可將集群限流和單機(jī)限流配合起來使用,以達(dá)到主動(dòng)限流的目的。

二、降級(jí)
降級(jí)是一種比較直接、暴力的自我保護(hù)機(jī)制,所謂的降級(jí)主要是指當(dāng)短視頻開發(fā)的整個(gè)業(yè)務(wù)處于高峰期或活動(dòng)脈沖期時(shí),通過犧牲一些非核心功能來保證核心功能的可用性。在短視頻開發(fā)中常用的降級(jí)方案有:
1、頁面降級(jí):主要是指從用戶操作頁面進(jìn)行操作,直接限制和階段某功能的入口。
2、存儲(chǔ)降級(jí):主要是指利用緩存來降級(jí)頻繁操作的存儲(chǔ)。
3、度降級(jí):對(duì)于短視頻開發(fā)中的非核心信息的讀請(qǐng)求禁用。
4、寫降級(jí):直接禁止相關(guān)寫操作的服務(wù)請(qǐng)求。
三、熔斷
熔斷在短視頻開發(fā)中可以直接解決級(jí)聯(lián)故障和服務(wù)雪崩,是一種比較強(qiáng)效的自我保護(hù)機(jī)制。
在分布環(huán)境中,當(dāng)下游服務(wù)發(fā)生異常后,上游服務(wù)中就會(huì)出現(xiàn)請(qǐng)求超時(shí)和調(diào)用延遲的情況,而積壓的大量請(qǐng)求和調(diào)用會(huì)不斷消耗系統(tǒng)資源,直到系統(tǒng)資源被耗盡發(fā)生服務(wù)雪崩。
針對(duì)該情況我們就可以采取熔斷策略,直接停止對(duì)下游的調(diào)用,并不斷檢測(cè)下游接口是否恢復(fù)。

在短視頻開發(fā)中高并發(fā)是一個(gè)老生常談的問題,為應(yīng)對(duì)該問題開發(fā)者們也研究出了諸多方案,建立系統(tǒng)服務(wù)的自我保護(hù)機(jī)制就是其一,只有靈活使用這些方案,才能保證系統(tǒng)的高可用,才能讓用戶獲得穩(wěn)定、持續(xù)的高質(zhì)量服務(wù)。
聲明:本文由云豹科技原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者名及原文鏈接,否則視為侵權(quán)
?