輕量級熔斷降級框架 alibaba sentinel 應用


一、簡介:

wiki:https://github.com/alibaba/Sentinel/wiki

選擇:

♥ 開源,成熟(功能完備、實際應用),活躍(功能維護及拓展)

♥ 更輕量:依賴資源少;api方式或者注解方式資源定義;提供擴展入口(自定義slot規則)

♥ 性能損耗小:只有在業務單機量級超過 25W QPS 的時候才會有一些顯著的影響(5% - 10% 左右)

♥♥ 資源,規則分離:埋點資源,按需配置應用規則

 

核心:資源 + 規則

資源:萬物皆資源,通過API定義的任何代碼

規則:系統保護、限流,熔斷降級等規則

 

總體框架:

資源Entry對象 + slot chain

熔斷降級:

隔離方式:信號量,控制並發線程數(規避線程池隔離方式弊端:預設線程池資源 +上下文切換)

降級策略:

♦ 平均響應時間 (DEGRADE_GRADE_RT=0):秒級,passCount>=5

♦ 異常比例 (DEGRADE_GRADE_EXCEPTION_RATIO=1):秒級,qps >= 5

♦ 異常數 (DEGRADE_GRADE_EXCEPTION_COUNT=2):分鍾級

 

怎么使用:

定義埋點資源

+

配置規則:動態

二、Sentinel 配置:

1、引入依賴:

2、添加配置:

3、規則數據源配置:

a)自定義pull型規則動態數據源:服務每秒拉取配置,有變更則更新規則應用

數據源定義:

規則配置:uc:rules:degrade

[{

"resource": "xxxResource", //應用資源名稱

"count": 0.5, //根據 grade 設置,代表 響應時間閾值 | 異常比例(異常數占總數比例)| 異常閾值

"grade": 1, //降級策略 0 平均響應時間 1 異常比例 2 異常數

"limitApp": "default",

"timeWindow": 4 //時間窗口,單位 s,觸發規則后,在接下的時間窗口之內,對這個方法的調用都會自動地熔斷

} ]

b)apollo動態配置源

依賴:

配置:

配置文件:yml文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM