基於令牌桶演算法實現的分散式無鎖限流框架
SnowJena#
What#
基於令牌桶演算法實現的分散式無鎖限流框架,支持熔斷降級,支持動態配置規則,支持可視化監控,開箱即用。
Noun#
限流#
當我們設計了一個函數,準備上線,這時候這個函數會消耗一些資源,處理上限是1秒服務3000個QPS,但如果實際情況遇到高於3000的QPS該如何解決呢?本項目提供了當QPS超出某個設定的閾值,系統可以通過直接拒絕或阻塞兩種方式來應對,從而起流量控制的作用。
降級#
接觸過Spring Cloud、Service Mesh的同學,都知道熔斷降級的概念。服務之間會有相互依賴關係,例如服務A做到了1秒上萬個QPS,但這時候服務B並無法滿足1秒上萬個QPS,那麼如何保證服務A在高頻調用服務B時,服務B仍能正常工作呢?一種比較常見的情況是,服務A調用服務B時,服務B因無法滿足高頻調用出現響應時間過長的情況,導致服務A也出現響應過長的情況,進而產生連鎖反應影響整個依賴鏈上的所有應用,這時候就需要熔斷和降級的方法。本項目通過設置快速失敗策略來對服務自定義進行熔斷或降級。
塑形#
通常我們遇到的流量具有隨機性、不規則、不受控的特點,但系統的處理能力往往是有限的,我們需要根據系統的處理能力對流量進行塑形,即規則化,從而根據我們的需要來處理流量。本項目本地限流具備流量塑性功能,嚴格控制系統的處理時間間隔。
負載保護#
平時系統運行都沒問題,但遇到大促的時候,發現機器的load非常高,這時候對系統的負載保護就顯得非常重要,以防止雪崩。本項目提供了對應的保護機制,讓系統的入口流量和系統的負載達到一個平衡,保證系統在能力範圍之內處理最多的請求。使系統能夠處理的請求,和允許進來的請求,達到平衡。
Preview#
※程序員過關斬將-你為什麼還在用存儲過程?
※基於大數據的輿情分析系統架構
TAG:千鋒JAVA開發學院 |