從零開始學Spring Cloud微服務架構

章為忠

  • 從零開始學Spring Cloud微服務架構-preview-1
  • 從零開始學Spring Cloud微服務架構-preview-2
  • 從零開始學Spring Cloud微服務架構-preview-3
從零開始學Spring Cloud微服務架構-preview-1

相關主題

商品描述

"《從零開始學Spring?Cloud微服務架構》專註於介紹Spring Cloud微服務架構,內容涵蓋構建和應用微服務架構所需的關鍵知識和技術。《從零開始學Spring?Cloud微服務架構》共分為14章。第1~3章介紹微服務架構的發展歷程、Spring Cloud概述以及使用Spring Boot構建微服務應用的實戰技巧;第4~7章重點講解Eureka服務註冊與發現,Ribbon客戶端負載均衡和Feign服務調用,Hystrix的限流、降級和熔斷,幫助讀者理解和應用微服務架構中的核心組件;第8、9章深入研究微服務網關Spring Cloud Gateway和微服務配置中心Spring Cloud Config的實現;第10~12章介紹微服務架構下的統一認證和授權、微服務全鏈路跟蹤SkyWalking,並展示如何集成Prometheus+Grafana實現微服務監控的方法和技巧;第13、14章引導讀者使用Docker和Docker Compose實現微服務容器化部署,並通過項目實戰展示如何使用Spring Cloud構建圖書管理系統。 《從零開始學Spring?Cloud微服務架構》適合希望學習Spring Cloud微服務、分佈式系統開發與架構的開發人員和架構師閱讀,同時也可以作為電腦科學、軟件工程等相關專業的學生和研究人員的參考書。"

目錄大綱

目    錄

第1章  微服務的前世今生 1

1.1  軟件架構的演化之路 1

1.2  什麽是微服務 4

1.3  為什麽需要微服務 7

1.4  微服務與單體、SOA的區別 9

1.5  什麽場景適合微服務 11

1.6  微服務架構的形態 11

1.7  本章小結 15

第2章  Spring Cloud概述 16

2.1  Spring Cloud簡介 16

2.1.1  什麽是Spring Cloud 16

2.1.2  Spring Cloud的發展前景 17

2.1.3  Spring Cloud與Dubbo的對比 18

2.2  Spring Cloud的版本 21

2.2.1  Spring Cloud的版本發布規則 21

2.2.2  Spring Cloud的項目組成 22

2.2.3  Spring Cloud與Spring Boot版本之間的對應關系 23

2.3  Spring Cloud的核心組件和架構 24

2.3.1  Spring Cloud的架構 24

2.3.2  Spring Cloud的核心組件 25

2.4  本章小結 28

第3章  Spring Boot基礎 29

3.1  Spring Boot概述 29

3.1.1  什麽是Spring Boot 29

3.1.2  Spring、Spring Boot和Spring Cloud之間的關系 30

3.2  構建Spring Boot應用helloworld 31

3.2.1  創建第一個Spring Boot工程 32

3.2.2  創建RESTful API服務 33

3.3  Web開發基礎 35

3.3.1  @Controller和@RestController 35

3.3.2  @RequestMapping 37

3.3.3  @ResponseBody 37

3.4  優雅的數據返回 38

3.4.1  為什麽要統一返回值 38

3.4.2  統一數據返回 39

3.4.3  全局異常處理 44

3.5  系統配置文件 46

3.5.1  application.properties 46

3.5.2  application.yml 48

3.5.3  實戰:自定義系統的啟動圖案 50

3.6  實戰:實現系統多環境配置 52

3.6.1  多環境配置 52

3.6.2  系統環境切換 53

3.7  本章小結 55

3.8  本章練習 55

第4章  Eureka註冊中心 56

4.1  Eureka簡介 56

4.1.1  什麽是註冊中心 56

4.1.2  為什麽需要註冊中心 57

4.1.3  什麽是Eureka 58

4.1.4  Eureka的架構原理 58

4.1.5  Eureka還是ZooKeeper 60

4.2  搭建Eureka註冊中心 63

4.2.1  搭建Eureka註冊中心 64

4.2.2  構建服務提供者 66

4.2.3  構建服務消費者 68

4.3  玩轉Eureka 71

4.3.1  自我保護模式 71

4.3.2  如何優雅地停服 73

4.3.3  安全認證 74

4.3.4  健康檢查 75

4.4  高可用Eureka註冊中心(Eureka集群) 78

4.4.1  Eureka集群架構原理 78

4.4.2  搭建高可用的Eureka集群 79

4.5  本章小結 81

4.6  本章練習 81

第5章  Ribbon實現客戶端負載均衡 82

5.1  Ribbon簡介 82

5.1.1  什麽是Ribbon 82

5.1.2  Ribbon的核心組件 84

5.1.3  Ribbon的工作原理 84

5.2  Ribbon的使用 85

5.2.1  使用Ribbon實現負載均衡 85

5.2.2  超時機制 87

5.2.3  重試機制 88

5.2.4  飢餓加載 90

5.3  Ribbon負載均衡策略 90

5.3.1  負載均衡算法 91

5.3.2  配置負載均衡算法 92

5.3.3  自定義負載均衡算法 93

5.4  本章小結 94

5.5  本章練習 95

第6章  Feign服務調用 96

6.1  Feign簡介 96

6.1.1  Feign是什麽 96

6.1.2  Feign用於解決什麽問題 97

6.1.3  Feign的工作原理 98

6.2  Feign的使用 99

6.2.1  使用Feign調用服務 99

6.2.2  @FeignClient註解參數 101

6.2.3  Feign的自定義配置 102

6.3  Feign的攔截器、編解碼器和異常處理 103

6.3.1  Feign的攔截器 103

6.3.2  Feign的編碼器 104

6.3.3  Feign的解碼器 104

6.3.4  Feign的異常處理 105

6.4  實際工程中的Feign實踐 105

6.4.1  超時設置 105

6.4.2  開啟日誌 106

6.4.3  使用OKHttp3提升性能 106

6.4.4  開啟GZIP壓縮 107

6.5  本章小結 107

6.6  本章練習 108

第7章  Hystrix的限流、降級和熔斷 109

7.1  Hystrix簡介 109

7.1.1  什麽是服務雪崩效應 109

7.1.2  什麽是Hystrix 110

7.1.3  Hystrix的功能特性 111

7.1.4  什麽是服務的限流、降級和熔斷 112

7.2  Hystrix的設計原理 112

7.2.1  Hystrix的工作流程 112

7.2.2  Hystrix的熔斷設計 114

7.2.3  Hystrix的隔離設計 114

7.2.4  Hystrix的超時機制設計 115

7.3  Hystrix的使用 116

7.3.1  Hystrix的常用註解 116

7.3.2  使用@HystrixCommand註解實現服務容錯 118

7.3.3  Hystrix實現服務資源隔離 120

7.3.4  Hystrix與Feign結合使用 121

7.4  Hystrix Dashboard服務監控 123

7.4.1  Hystrix Dashboard簡介 123

7.4.2  搭建Hystrix Dashboard監控服務 124

7.4.3  使用Hystrix Dashboard服務監控平臺 125

7.5  本章小結 127

7.6  本章練習 127

第8章  構建微服務網關Spring Cloud Gateway 128

8.1  微服務網關簡介 128

8.1.1  什麽是微服務網關 128

8.1.2  為什麽需要微服務網關 129

8.1.3  微服務網關的核心功能 130

8.1.4  微服務網關與傳統API網關的區別 131

8.1.5  當前流行的微服務網關 131

8.2  使用Spring Cloud Gateway構建微服務網關 133

8.2.1  Spring Cloud Gateway簡介 133

8.2.2  Spring Cloud Gateway的工作流程 134

8.2.3  搭建Spring Cloud Gateway微服務網關 135

8.2.4  使用Java Bean配置Gateway路由 137

8.3  路由和斷言 137

8.3.1  服務名路由轉發 137

8.3.2  斷言 138

8.4  過濾器 139

8.4.1  什麽是過濾器 139

8.4.2  使用過濾器實現權限驗證 139

8.5  本章小結 141

8.6  本章練習 142

第9章  配置中心Spring Cloud Config 143

9.1  配置中心簡介 143

9.1.1  什麽是配置中心 143

9.1.2  配置中心的作用 144

9.1.3  為什麽需要配置中心 145

9.1.4  當前流行的微服務配置中心 146

9.2  Spring Cloud Config簡介 147

9.2.1  什麽是Spring Cloud Config 147

9.2.2  Spring Cloud Config的工作原理 148

9.3  使用Spring Cloud Config構建配置中心 149

9.3.1  創建配置中心服務端 149

9.3.2  創建配置中心客戶端 152

9.3.3  配置文件命名規則 153

9.4  實現配置動態刷新 154

9.4.1  技術方案 155

9.4.2  Spring Cloud Bus簡介 155

9.4.3  使用Spring Cloud Bus實現配置動態刷新 156

9.5  本章小結 158

9.6  本章練習 158

第10章  微服務的統一認證和授權 159

10.1  微服務安全概覽 159

10.1.1  認證和授權在微服務中的重要性 159

10.1.2  微服務下認證和授權的挑戰 160

10.1.3  常見的認證和授權解決方案 161

10.2  OAuth 2.0簡介 165

10.2.1  什麽是OAuth 2.0 165

10.2.2  OAuth 2.0的使用場景 166

10.2.3  OAuth 2.0的基本流程 167

10.2.4  OAuth 2.0的授權模式 168

10.3  Spring Cloud如何實現認證和授權 168

10.3.1  實現方案 168

10.3.2  準備工作 170

10.3.3  搭建認證和授權服務 170

10.3.4  網關集成認證和授權 175

10.3.5  搭建訂單管理服務 179

10.3.6  測試驗證 181

10.4  本章小結 184

10.5  本章練習 184

第11章  集成Prometheus+Grafana監控服務 185

11.1  監控系統簡介 185

11.1.1  什麽是監控系統 185

11.1.2  監控系統的作用 185

11.1.3  監控系統的架構組件 186

11.1.4  當前流行的監控系統 187

11.2  使用Prometheus+Grafana搭建監控系統 190

11.2.1  Prometheus的組件結構 190

11.2.2  安裝Prometheus Server 191

11.2.3  安裝Node Exporter 191

11.2.4  安裝Grafana 194

11.3  使用Prometheus監控Spring Boot的應用 198

11.3.1  如何監控Spring Boot應用 198

11.3.2  Spring Boot集成Micrometer實現數據採集 199

11.3.3  Prometheus收集應用數據並展示到Grafana 200

11.3.4  Spring Boot自定義監控指標 204

11.4  使用Grafana實現配置監控告警 206

11.4.1  告警的實現方式 206

11.4.2  配置Grafana告警 207

11.5  使用Alertmanager實現監控告警 211

11.5.1  Alertmanager的配置和安裝 211

11.5.2  實現Alertmanager告警 213

11.6  本章小結 216

11.7  本章練習 216

第12章  微服務全鏈路跟蹤SkyWalking 217

12.1  全鏈路追蹤簡介 217

12.1.1  什麽是全鏈路追蹤 217

12.1.2  為什麽需要全鏈路追蹤 218

12.1.3  全鏈路追蹤的實現原理 219

12.1.4  當前流行的全鏈路追蹤組件 220

12.2  SkyWalking簡介 223

12.2.1  什麽是SkyWalking 223

12.2.2  為什麽要選擇SkyWalking 224

12.2.3  SkyWalking的組件架構 225

12.3  搭建SkyWalking系統 225

12.3.1  搭建SkyWalking服務端 226

12.3.2  SkyWalking的使用及指標參數 228

12.4  Spring Boot項目如何接入SkyWalking 236

12.4.1  Agent簡介 236

12.4.2  下載Agent 237

12.4.3  如何使用Agent 238

12.4.4  Spring Boot集成SkyWalking 239

12.5  本章小結 240

12.6  本章練習 241

第13章  使用Docker和Docker Compose實現容器化部署 242

13.1  Docker入門 242

13.1.1  Docker簡介 242

13.1.2  Docker的常用命令 244

13.1.3  Spring Boot項目添加Docker支持 246

13.1.4  構建、運行Docker鏡像 248

13.2  Docker Compose入門 249

13.2.1  Docker Compose簡介 250

13.2.2  Docker Compose的安裝 250

13.2.3  Docker Compose的常用命令 251

13.2.4  Docker Compose配置文件 252

13.3  使用Docker Compose編排Spring Cloud微服務 254

13.3.1  準備工作 254

13.3.2  打包Docker鏡像 254

13.3.3  Docker Compose運行鏡像 255

13.4  本章小結 257

13.5  本章練習 257

第14章  項目實戰:從零開始實現圖書管理系統 258

14.1  項目介紹 258

14.1.1  項目背景 258

14.1.2  項目目標 259

14.2  系統架構 259

14.2.1  技術選型 259

14.2.2  架構設計 260

14.2.3  功能模塊說明 260

14.2.4  服務拆分和劃分 261

14.3  搭建系統框架 261

14.3.1  項目結構 262

14.3.2  創建父工程 262

14.3.3  創建註冊中心 264

14.3.4  創建微服務網關 265

14.3.5  創建配置中心 266

14.4  實現模塊功能 268

14.4.1  創建認證和授權服務 268

14.4.2  創建系統管理服務 272

14.4.3  創建圖書管理服務 274

14.4.4  創建借書管理服務 276

14.5  系統演示 279

14.6  本章小結 282