Spring Cloud 微服務快速上手
內容描述
《Spring Cloud 微服務快速上手》介紹了當下最主流的屬於Spring生態的微服務框架,它繼承了Spring Boot的優點,開發部署都非常簡單。本書內容全面,介紹了微服務架構的發展歷程,包含Spring Cloud Netflix 和 Spring Cloud Alibaba的組件,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等。在解讀核心組件的實現原理的同時,配以案例進行實踐。本書內容包含微服務架構和雲原生架構,讀者在掌握微服務之後,可以進一步掌握雲原生知識。
目錄大綱
目 錄
第 1 章 微服務概述
1.1 單體架構
1.2 集群架構
1.3 微服務架構
1.4 微服務特性
1.5 微服務實踐參考
1.6 微服務的缺點
1.7 Spring Cloud 簡介
1.8 小結
第 2 章 微服務註冊中心
2.1 為什麽要有註冊中心
2.2 註冊中心的設計思路
2.2.1 註冊中心的存儲結構
2.2.2 註冊中心需要具備的操作
2.3 Eureka 的使用
2.3.1 創建註冊中心服務端 Eureka Server
2.3.2 創建客戶端
2.3.3 Eureka Server 高可用搭建
2.3.4 Eureka Server 端用戶認證
2.3.5 自我保護機制
2.3.6 多網卡選擇
2.3.7 Eureka Server 源碼解析
2.3.8 Eureka Client 源碼解析
2.4 Nacos 的使用
2.4.1 搭建單節點 Nacos Server
2.4.2 創建 Nacos Client
2.4.3 高可用 Nacos Server 搭建
2.5 Consul 的使用
2.5.1 搭建單節點 Consul Server
2.5.2 創建 Consul Client
2.5.3 高可用 Consul Server 搭建
2.6 小結
第 3 章 服務調用
3.1 生產環境中的微服務架構
3.2 RestTemplate 調用
3.2.1 RESTful 風格介紹
3.2.2 RestTemplate 實戰
3.2.3 RestTemplate 源碼解析
3.2.4 負載均衡
3.2.5 自定義配置負載均衡
3.2.6 Ribbon 源碼解析
3.3 OpenFeign 調用
3.3.1 OpenFeign 的基礎使用
3.3.2 自定義 URL
3.3.3 自定義 OpenFeign 的配置
3.3.4 Feign 源碼解析
3.4 小結
第 4 章 服務的熔斷、降級和限流
4.1 熔斷和降級的應用場景
4.2 熔斷和降級的使用
4.2.1 RestTemplate 中熔斷和降級的使用
4.2.2 OpenFeign 中熔斷和降級的使用
4.3 自定義熔斷配置
4.4 限流
4.4.1 計數器(固定窗口)算法
4.4.2 滑動時間窗口算法
4.4.3 漏桶限流算法
4.4.4 令牌桶限流算法
4.5 Sentinel 熔斷和限流實戰
4.5.1 Sentinel 控制台安裝
4.5.2 Sentinel 在程序中的配置
4.5.3 Sentinel 流控規則
4.6 小結
第 5 章 配置中心
5.1 配置中心應用場景
5.2 配置中心的設計思路
5.2.1 配置存儲
5.2.2 配置的屬性
5.2.3 配置服務
5.3 Spring Cloud 配置中心的使用
5.3.1 在 Git 上創建配置
5.3.2 創建配置的服務端
5.3.3 創建配置的客戶端
5.3.4 配置的手動刷新
5.3.5 配置的自動刷新
5.3.6 在 MySQL 上創建配置 .
5.3.7 配置內容對稱加密
5.3.8 配置內容非對稱加密
5.3.9 配置中心安全認證
5.3.10 高可用配置中心
5.4 Nacos 配置中心使用
5.4.1 Nacos 配置中心的基本使用
5.4.2 Nacos 配置擴展
5.4.3 Nacos 模型管理
5.5 總結
第 6 章 服務網關
6.1 網關 Gateway 的基本使用
6.1.1 微服務搭建 passenger-api
6.1.2 Gateway 網關搭建 cloud-gateway
6.1.3 Java 類加載器層級結構
6.1.4 Java 雙親委派機制原理
6.1.5 Java ClassLoader 類的原理
6.1.6 Java URLClassLoader 類的原理
6.1.7 Java 雙親委派機制的打破
6.1.8 Java 自定義類加載器
6.2 路由斷言使用
6.2.1 Path 路由斷言
6.2.2 Query 路由斷言
6.2.3 Method 路由斷言
6.2.4 Header 路由斷言
6.2.5 自定義路由斷言
6.3 過濾器的使用
6.3.1 添加請求頭過濾器
6.3.2 移除請求頭過濾器
6.3.3 狀態碼設置
6.3.4 重定向設置
6.3.5 過濾器源碼
6.4 全局過濾器
6.5 小結
第 7 章 鏈路追蹤
7.1 鏈路追蹤的設計思路
7.2 鏈路追蹤的使用
7.3 追蹤原理分析
7.4 可視化鏈路追蹤
7.5 消息隊列收集鏈路追蹤
7.6 小結
第 8 章 服務監控
8.1 Spring Boot Admin 的使用
8.2 監控內容介紹
8.3 認證保護
8.4 服務監聽郵件通知
8.5 服務監聽釘釘通知
8.6 小結
第 9 章 分佈式鎖解決方案
9.1 業務場景
9.2 單機 JVM 鎖
9.2.1 系統架構與核心代碼
9.2.2 JMeter 安裝與配置
9.2.3 壓力測試
9.2.4 單機 JVM 鎖的問題
9.3 分佈式鎖思路分析
9.4 MySQL 分佈式鎖
9.5 Redis 分佈式鎖
9.5.1 死鎖問題
9.5.2 過期時間問題
9.5.3 Redisson 框架使用
9.5.4 Redis 單節點問題
9.5.5 紅鎖
9.5.6 Redis 做分佈式鎖的終極問題
9.6 Zookeeper 分佈式鎖
9.6.1 Zookeeper 節點類型
9.6.2 Zookeeper 分佈式鎖原理
9.6.3 Zookeeper 結合 MySQL 樂觀鎖
9.6.4 Zookeeper 分佈式鎖代碼實現
9.7 小結
第 10 章 分佈式事務解決方案
10.1 分佈式事務業務場景
10.2 分佈式事務思路分析
10.3 X/Open 分佈式事務模型
10.4 兩階段提交協議
10.4.1 兩階段提交協議的過程
10.4.2 兩階段提交協議的缺點
10.5 三階段提交協議
10.5.1 三階段提交協議的過程
10.5.2 兩階段提交協議和三階段提交協議的區別
10.6 CAP 定理和 BASE 理論
10.6.1 CAP 定理
10.6.2 BASE 理論
10.7 TCC 分佈式事務解決方案
10.7.1 TCC 方案
10.7.2 TCC 方案的異常處理
10.8 可靠消息最終一致性方案
10.8.1 可靠消息最終一致性問題分析
10.8.2 本地消息事件表方案
10.8.3 RocketMQ 事務消息方案
10.9 RocketMQ 安裝部署
10.10 RocketMQ 事務消息實戰
10.10.1 生產者 producer
10.10.2 消費者 consumer
10.11 Seata 分佈式事務解決方案
10.12 Seata AT 模式實戰
10.12.1 啟動註冊中心
10.12.2 下載安裝 Seata
10.12.3 搭建訂單服務
10.12.4 搭建庫存服務
10.12.5 測試
10.13 Seata TCC 模式實戰
10.13.1 訂單服務
10.13.2 庫存服務
10.13.3 測試
10.14 最大努力通知方案
10.14.1 什麽是最大努力通知方案
10.14.2 最大努力通知方案實戰
10.15 小結
第 11 章 微服務鑒權認證安全設計
11.1 鑒權認證常見的場景及解決方案
11.1.1 單體應用
11.1.2 微服務應用
11.2 OAuth 2.0 介紹
11.3 OAuth 2.0 實戰
11.4 JWT 使用
11.4.1 JWT 的介紹
11.4.2 JWT 的實踐
11.4.3 JWT 的使用場景
11.5 小結