實戰Alibaba Sentinel:深度解析微服務高並發流量治理

實戰Alibaba Sentinel:深度解析微服務高並發流量治理

作者: 吳就業
出版社: 電子工業
出版在: 2022-01-01
ISBN-13: 9787121426704
ISBN-10: 7121426706
總頁數: 268 頁





內容描述


本書分為14章,涵蓋的知識主要包括:限流與熔斷等基礎概念、Sentinel的特性與性能壓測,Sentinel概念、核心類與數據結構,Sentinel整體工作流程,資源指標數據統計,限流與流量效果控制,熔斷降級與熔斷器,授權與系統自適應功能,擴展Sentinel實現開關降級,Sentinel動態數據源,Sentinel適配主流框架的實現原理,熱點參數限流,集群限流,異步調用鏈的支持,資源指標數據的收集與持久化。本書內容豐富,概念通俗易懂,讓讀者不僅能夠深入理解Sentinel的實現原理,還能夠從Sentinel中學習到一些技術,如Java SPI的應用、責任鏈設計模式的應用、高並發性能優化、滑動窗口的實現、勻速限流與冷啟動算法、信號量隔離的目的與實現等。


目錄大綱


引言筆者經歷的一次服務雪崩
第1章基礎知識
1.1 服務降級、限流、熔斷、流量效果控制
1.1.1 限流降級
1.1.2 熔斷降級
1.1.3 開關降級
1.2 Sentinel的特性
1.3 Sentinel性能壓測
1.3.1 JMH基準測試
1.3.2 使用JMH進行Sentinel壓測
1.4 小結
第2章了解概念與核心類
2.1 了解Sentinel的一些概念
2.1.1 資源、規則、資源指標數據
2.1.2 調用鏈與調用樹
2.1.3 處理器插槽
2.2 資源指標數據統計相關類
2.2.1 ResourceWrapper
2.2.2 Node
2.3 調用鏈上下文與入口類
2.3.1 Context
2.3.2 Entry
2.3.3 調用樹與ROOT節點
2.4 處理器插槽:ProcessorSlot
2.5 小結
第3章了解整體工作流程
3.1 SPI在Sentinel中的應用
3.1.1 Java SPI實現原理與適用場景
3.1.2 Java SPI在Sentinel中的應用
3.1.3 自定義組裝ProcessorSlotChain
3.2 責任鏈模式在Sentinel中的應用
3.3 Sentinel的整體工作流程分析
3.4 小結
第4章資源指標數據統計
4.1 基於滑動窗口實現資源指標數據統計
4.1.1 Bucket
4.1.2 滑動窗口
4.1.3 WindowWrap
4.1.4 通過時間戳定位Bucket
4.1.5 獲取當前時間戳的前一個Bucket
4.2 資源指標數據統計全解析
4.2.1 節點選擇器插槽
4.2.2 ClusterNode構造器插槽
4.2.3 資源指標數據統計插槽
4.2.4 資源指標數據的收集過程
4.3 小結
第5章限流
5.1 限流功能實現原理
5.1.1 限流規則
5.1.2 限流規則加載器
5.1.3 限流處理器插槽
5.1.4 限流規則檢查器
5.2 流量效果控制
5.2.1 經典限流算法
5.2.2 流量效果控制器
5.2.3 快速失敗流量效果控制器
5.2.4 勻速限流效果控制器
5.2.5 冷啟動限流效果控制器
5.3 小結
第6章熔斷降級
6.1 舊版熔斷降級
6.1.1 熔斷降級規則
6.1.2 熔斷降級的實現原理
6.2 新版熔斷降級
6.2.1 舊版熔斷降級的不足
6.2.2 新版本的改進
6.2.3 熔斷器的實現原理
6.3 熔斷器
6.3.1 抽象熔斷器
6.3.2 異常熔斷器
6.3.3 慢請求熔斷器
6.4 小結
第7章授權與系統自適應
7.1 授權功能的實現原理
7.1.1 授權規則
7.1.2 授權處理器插槽
7.1.3 授權規則檢查器
7.2 系統自適應功能的實現原理
7.2.1 系統自適應限流規則
7.2.2 系統自適應限流判斷流程
7.2.3 獲取系統的平均負載和CPU使用率
7.2.4 checkBbr
7.3 小結
第8章實現開關降級
8.1 使用AOP實現開關降級
8.2 擴展Sentinel實現開關降級
8.3 小結
第9章動態數據源
9.1 實現規則動態配置的兩種方式
9.2 使用Redis動態數據源
9.3 動態配置的實現原理
9.3.1 SentinelProperty
9.3.2 ReadableDataSource
9.4 基於Spring Cloud動態配置實現動態數據源
9.5 小結
第10章適配主流框架
10.1 適配Spring MVC框架
10.1.1 使用步驟
10.1.2 適配原理
10.2 適配OpenFeign框架
10.2.1 使用步驟
10.2.2 Sentinel與OpenFeign整合的實現原理
10.3 適配Dubbo框架
10.3.1 使用步驟
10.3.2 適配原理
10.4 註解切面
10.4.1 @SentinelResource
10.4.2 SentinelResourceAspect
10.5 小結
第11章熱點參數限流
11.1 熱點參數限流功能的實現
11.1.1 熱點參數指標數據統計
11.1.2 熱點參數限流的實現原理
11.2 流量效果控制
11.2.1 快速失敗
11.2.2 勻速排隊
11.3 小結
第12章集群限流
12.1 本地限流與集群限流
12.2 集群限流的兩種模式
12.2.1 嵌入式模式
12.2.2 獨立應用模式
12.3 集群限流功能的實現
12.3.1 集群限流規則
12.3.2 集群限流規則的動態配置
12.3.3 集群限流客戶端配置
12.3.4 集群限流服務端配置
12.3.5 動態配置為嵌入式模式提供支持
12.3.6 集群限流核心類介紹
12.3.7 集群限流客戶端的實現
12.3.8 集群限流服務端的實現
12.3.9 集群限流指標數據統計的實現
12.4 小結
第13章異步調用鏈的支持
13.1 Sentinel異步調用鏈的支持
13.2 適配Reactor框架的實現原理
13.2.1 Reactive Streams規範
13.2.2 Reactor發布-訂閱流程
13.2.3 Reactor響應式流的構造原理
13.2.4 Reactor的Context傳遞過程
13.2.5 Sentinel適配Reactor框架的原理
13.3 適配WebFlux框架的實現原理
13.4 小結
第14章Sentinel Dashboard
14.1 資源指標數據收集的實現原理
14.2 如何將資源指標數據輸出到metrics日記文件中
14.3 如何持久化資源指標數據
14.4 小結




相關書籍

Functional Programming in JavaScript (Paperback)

作者 Dan Mantyla

2022-01-01

Mobile App Development with Ionic 2: Cross-Platform Apps with Ionic 2, Angular 2, and Cordova (Paperback)

作者 Chris Griffith

2022-01-01

編寫安全的移動應用程序 — 基於 PHP 和 JavaScript 技術 (Secure Development for Mobile Apps: How to Design and Code Secure Mobile Applications with PHP and JavaScript)

作者 [美]J.D.格拉瑟(J.D.Glaser) 吳驊 譯

2022-01-01