sentinel責任鏈

官網說明:

在 Sentinel 裏面,所有的資源都對應一個資源名稱(resourceName),每次資源調用都會創建一個 Entry 對象。也就是說Entry是和訪問線程綁定的。

Entry 可以通過對主流框架的適配自動創建,也可以通過註解的方式或調用 SphU API 顯式創建。Entry 創建的時候,同時也會創建一系列功能插槽(slot chain),這些插槽有不同的職責,例如:NodeSelectorSlot 負責收集資源的路徑,並將這些資源的調用路徑,以樹狀結構存儲起來,用於根據調用路徑來限流降級;
ClusterBuilderSlot 則用於存儲資源的統計信息以及調用者信息,例如該資源的 RT, QPS, thread count 等等,這些信息將用作爲多維度限流,降級的依據;
StatisticSlot 則用於記錄、統計不同緯度的 runtime 指標監控信息;
FlowSlot 則用於根據預設的限流規則以及前面 slot 統計的狀態,來進行流量控制;
AuthoritySlot 則根據配置的黑白名單和調用來源信息,來做黑白名單控制;
DegradeSlot 則通過統計信息以及預設的規則,來做熔斷降級;
SystemSlot 則通過系統的狀態,例如 load1 等,來控制總的入口流量;

責任鏈分析
關於插槽Slot類圖分析,其中使用的建造者模式、責任鏈模式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章