直播軟件源碼,分布式限流存在的意義是什么
限流是對直播軟件源碼高并發(fā)訪問進行限制、限速的過稱,通過限流來限制資源,可以提高系統(tǒng)的穩(wěn)定性和可靠性,控制系統(tǒng)的負載,削峰填谷,保證服務(wù)質(zhì)量。常見的服務(wù)限流處理方式是拒絕服務(wù)、排隊等待、服務(wù)降級,而限流可以分單機限流和分布式限流兩種常見的。
?

一、單機限流
單機限流的表現(xiàn)形式較多,比如計數(shù)器、互動窗口、漏桶算法、令牌桶算法等。
1、計數(shù)器,?取固定大小的時間窗口,并在每個窗口時間內(nèi)限制請求數(shù)量。只需要記錄一個計數(shù)器,并在每個時間窗口結(jié)束時將其重置為零。每當請求進入系統(tǒng)時,我們都會將計數(shù)器加一,并檢查它是否超過了限制的閾值。
2、滑動窗口,將一個窗口分為若干個等分的小窗口,每個小窗口對應(yīng)不同的時間點,擁有獨立的計數(shù)器。當請求的時間點大于當前窗口的最大時間點時,則將窗口向前平移一個小窗口。如果請求數(shù)量超過了小窗口的限制的閾值,則決絕該請求。
3、漏桶算法,屬于直播軟件源碼強制限制請求速率的方式,但存在兩個缺點:無法應(yīng)對正常的突發(fā)流量,無法有效利用資源。
二、分布式限流
常見是redis令牌桶。
?

三、兩種限流方式的對比
1、單機限流在單機上運行性能好,狀態(tài)穩(wěn)定,但對直播軟件源碼這種直播互動平臺來說,就不如分布式系統(tǒng)的限流了,如果分布式系統(tǒng)使用單純的單機限流,開啟HPA后流量會處于半失控狀態(tài),如果擴容整個集群限流就會變大,縮容整個集群限流就會變小。
2、已有的分布式限流方案需要每次/每批請求都需要請求“閾值管理者”單點,增加了服務(wù)端的網(wǎng)絡(luò)開銷和不穩(wěn)定因素,“閾值管理者”的穩(wěn)定性也是影響結(jié)果的一個重要因素。
兩者各有優(yōu)缺點,而直播軟件源碼需要的自然是兩者結(jié)合的優(yōu)點。
?

四、聚合查詢限流
屬于前兩者的結(jié)合方案,優(yōu)點在于它的限流功能依賴于負載均衡,而直播軟件源碼恰恰需要負載均衡的幫助,這樣能在原本直播軟件源碼需要的功能之外再開辟新的功能,減少支出。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責任