基於令牌桶算法實現的分佈式無鎖限流框架,支持熔斷降級,支持動態配置規則,支持可視化監控,開箱即用。git
當咱們設計了一個函數,準備上線,這時候這個函數會消耗一些資源,處理上限是1秒服務3000個QPS,但若是實際狀況遇到高於3000的QPS該如何解決呢?本項目提供了當QPS超出某個設定的閾值,系統能夠經過直接拒絕或阻塞兩種方式來應對,從而起流量控制的做用。github
接觸過Spring Cloud、Service Mesh的同窗,都知道熔斷降級的概念。服務之間會有相互依賴關係,例如服務A作到了1秒上萬個QPS,但這時候服務B並沒有法知足1秒上萬個QPS,那麼如何保證服務A在高頻調用服務B時,服務B仍能正常工做呢?一種比較常見的狀況是,服務A調用服務B時,服務B因沒法知足高頻調用出現響應時間過長的狀況,致使服務A也出現響應過長的狀況,進而產生連鎖反應影響整個依賴鏈上的全部應用,這時候就須要熔斷和降級的方法。本項目經過設置快速失敗策略來對服務自定義進行熔斷或降級。算法
一般咱們遇到的流量具備隨機性、不規則、不受控的特色,但系統的處理能力每每是有限的,咱們須要根據系統的處理能力對流量進行塑形,即規則化,從而根據咱們的須要來處理流量。本項目本地限流具有流量塑性功能,嚴格控制系統的處理時間間隔。框架
平時系統運行都沒問題,但遇到大促的時候,發現機器的load很是高,這時候對系統的負載保護就顯得很是重要,以防止雪崩。本項目提供了對應的保護機制,讓系統的入口流量和系統的負載達到一個平衡,保證系統在能力範圍以內處理最多的請求。使系統可以處理的請求,和容許進來的請求,達到平衡。分佈式
Blog:https://www.cnblogs.com/yueshutong/函數
Email:yster@foxmail.com設計
Github:https://github.com/yueshutong/SnowJenablog
Gitee:https://gitee.com/zyzpp/SnowJena資源
交流QQ羣:781927207get
若是幫助到你了,請不吝讚揚!謝謝!