Spring Cloud Alibaba微服務開發

李西明、陳立為

  • Spring Cloud Alibaba微服務開發-preview-1
  • Spring Cloud Alibaba微服務開發-preview-2
  • Spring Cloud Alibaba微服務開發-preview-3
Spring Cloud Alibaba微服務開發-preview-1

相關主題

商品描述

"本書基於2023年推出的**版本的微服務框架Spring Cloud Alibaba詳細講解了Nacos註冊中心、配置中心、負載均衡LoadBalancer組件、OpenFeign遠程RESTful調用框架、Dubbo+ZooKeeper的RPC遠程調用框架、網關組件Gateway、Sentinel流量控制和熔斷降級、RocketMQ消息中間件、Spring Cloud Stream整合消息中間件、Seata分佈式事務、微服務監控組件Skywalking及介紹瞭如何使用Docker部署Spring Boot項目和微服務組件、使用Kubernetes整合Spring Boot項目、使用Kubernetes編排微服務、基於Jenkins的微服務CI/CD實戰等,幫助讀者理解Spring Cloud Alibaba框架原理並快速上手搭建Spring Cloud Alibaba微服務框架項目。 本書適合有Spring Boot基礎的讀者進階學習,可作為自學資料或高等院校電腦軟件相關專業的教材或學慣用書或開發人員的參考資料。 "

目錄大綱

目錄

第1章微服務架構與Spring Cloud Alibaba1

1.1微服務架構1

1.1.1單體架構與微服務架構1

1.1.2微服務架構圖2

1.1.3Spring Cloud Alibaba微服務解決方案3

1.2搭建開發環境4

1.2.1安裝JDK4

1.2.2安裝Maven5

1.3微服務初步實踐6

1.3.1微服務拆分原則與角色劃分6

1.3.2創建客戶信息微服務6

1.3.3創建訂單信息微服務11

1.3.4遠程調用微服務13

第2章Nacos註冊中心與配置管理16

2.1Nacos簡介16

2.2Nacos服務註冊與發現16

2.2.1安裝與啟動Nacos組件17

2.2.2服務提供者項目18

2.2.3服務消費者項目19

2.3用Nacos配置管理21

2.3.1基本配置21

2.3.2微服務拉取配置22

2.3.3配置信息熱更新26

2.3.4多環境共享配置27

2.3.5多個微服務共享配置28

2.4搭建高可用的Nacos集群30

2.4.1搭建Nacos集群30

2.4.2使用Nginx對集群進行負載均衡32

2.4.3以集群的方式管理微服務34

2.4.4以集群的方式管理配置34

第3章負載均衡組件LoadBalancer37

3.1LoadBalancer負載均衡策略37

3.2默認負載均衡策略37

3.2.1創建服務提供者項目37

3.2.2創建服務消費者項目38

3.2.3測試負載均衡40

3.3切換負載均衡策略41

3.3.1使用隨機負載均衡策略41

3.3.2切換使用RoundRobinLoadBalancer輪詢負載均衡策略42

3.3.3使用NacosLoadBalancer負載均衡策略43

3.3.4啟動類中負載均衡註解的多種用法44

第4章服務調用框架OpenFeign45

4.1OpenFeign框架簡介45

4.1.1OpenFeign基礎知識45

4.1.2OpenFeign的動態代理45

4.2使用OpenFeign框架調用微服務46

4.2.1服務提供者與調用者項目46

4.2.2負載均衡48

4.2.3設置日誌級別49

4.2.4設置服務超時時間50

第5章網關組件53

5.1網關組件概述53

5.2網關組件快速入門54

5.2.1準備微服務項目54

5.2.2創建網關項目實現簡單路由功能54

5.3實現路由轉發中的負載均衡56

5.4過濾器57

5.4.1路由斷言57

5.4.2路由過濾器58

5.4.3路由過濾器工廠59

5.4.4默認過濾器61

5.4.5全局過濾器61

5.5網關的Cors跨域配置63

5.6灰度發布65

5.6.1灰度發布的思路66

5.6.2通過Gateway實現灰度發布66

第6章Sentinel流量控制和熔斷降級68

6.1雪崩問題68

6.2Sentinel簡介69

6.2.1Sentinel 基本概念69

6.2.2Sentinel安裝與啟動69

6.2.3依賴和配置70

6.3流量控制71

6.3.1基本案例71

6.3.2流控模式73

6.3.3流控模式之關聯73

6.3.4流控模式之鏈路75

6.3.5流控效果80

6.3.6流控效果之Warm Up80

6.3.7流控效果之排隊等待82

6.3.8熱點參數限流84

6.4服務降級87

6.5線程隔離87

6.5.1線程隔離基礎準備88

6.5.2線程隔離實踐89

6.6熔斷91

6.7授權規則95

6.8Sentinel異常處理97

第7章遠端調用組件Dubbo100

7.1Dubbo組件簡介100

7.1.1使用Dubbo進行遠端調用的流程100

7.1.2Dubbo和REST調用方式的差別100

7.1.3ZooKeeper的下載安裝與啟動101

7.2Dubbo遠端調用實踐101

7.2.1創建服務提供者101

7.2.2創建服務調用者103

7.2.3Dubbo中的負載均衡104

7.2.4Dubbo負載均衡策略104

7.3Sentinel 對 Dubbo 服務的限流與熔斷降級105

7.3.1在服務提供者端實現限流105

7.3.2在服務提供者端實現熔斷107

7.3.3在服務提供者端實現服務降級邏輯108

7.3.4在服務調用者端實現降級邏輯109

第8章RocketMQ消息中間件111

8.1RocketMQ簡介111

8.2RocketMQ安裝與啟動113

8.3普通消息發送115

8.3.1發送同步消息115

8.3.2發送異步消息116

8.3.3發送單向消息117

8.4消費消息118

8.4.1Push消費118

8.4.2Pull消費120

8.5順序消息121

8.5.1全局有序121

8.5.2局部有序124

8.6延遲消息126

8.7批量消息127

8.7.1批量發送消息127

8.7.2分批批量發送消息128

8.8過濾消息129

8.8.1Tag過濾129

8.8.2SQL方式過濾130

8.9事務消息132

第9章Spring Cloud Stream整合消息中間件136

9.1Spring Cloud Stream基礎136

9.2Spring Cloud Stream整合RocketMQ137

9.2.1消息發送137

9.2.2消息消費138

9.3Spring Cloud Stream整合RabbitMQ139

9.3.1RabbitMQ安裝與啟動139

9.3.2消息發送140

9.3.3消息消費141

第10章Seata分佈式事務144

10.1Seata 的工作原理144

10.1.1Seata的3個角色144

10.1.2工作流程145

10.2Seata的安裝與啟動145

10.2.1Seata下載與修改配置145

10.2.2Nacos共享配置146

10.2.3創建全局事務表與分支事務表148

10.2.4啟動Seata服務149

10.3無分佈式事務的微服務150

10.3.1創建訂單項目150

10.3.2扣減賬戶項目154

10.3.3扣減庫存項目156

10.3.4測試無分佈式事務的情況157

10.4XA模式158

10.4.1兩階段提交158

10.4.2XA模式架構159

10.4.3實現XA模式160

10.5AT模式162

10.5.1AT模式執行流程162

10.5.2AT模式的實現162

10.6TCC模式164

10.6.1TCC模式介紹164

10.6.2TCC模式的實現之修改數據庫165

10.6.3TCC模式的實現之修改orderservice項目165

10.6.4TCC模式的實現之修改accountservice項目167

10.6.5TCC模式的實現之修改storageservice項目 169

10.6.6測試TCC模式172

10.7Saga模式172

10.7.1概述172

10.7.2Saga的實現173

第11章微服務監控組件Skywalking174

11.1Skywalking基礎知識174

11.2Skywalking服務器端的下載、安裝與啟動176

11.2.1下載 Skywalking176

11.2.2配置 Skywalking176

11.2.3啟動Skywalking178

11.3微服務項目整合Skywalking179

11.3.1下載Java Agent179

11.3.2配置微服務179

11.4服務監控與鏈路追蹤182

11.4.1服務監控182

11.4.2拓撲結構圖183

11.4.3鏈路跟蹤184

11.5整合logback監控鏈路184

11.5.1修改微服務commonservice184

11.5.2修改微服務orderservice185

11.5.3修改微服務userservice和userservice2185

11.5.4鏈路監控情況測試186

第12章Docker部署Spring Boot項目和微服務組件188

12.1Docker與Spring Cloud微服務188

12.1.1Docker鏡像、容器和虛擬化管理引擎188

12.1.2搭建Docker環境189

12.1.3用Docker管理微服務的方式189

12.2容器化管理Spring Boot項目190

12.2.1準備Spring Boot項目190

12.2.2打包成JAR包191

12.2.3製作JDK 17基礎鏡像191

12.2.4用JAR包製作鏡像193

12.3容器化管理組件194

12.3.1容器化管理Nacos組件195

12.3.2容器化管理Sentinel196

12.3.3通過Docker容器部署Redis197

第13章使用Docker部署微服務項目實踐199

13.1商品管理微服務系統架構分析199

13.1.1微服務項目的表現形式與優勢199

13.1.2基於Docker容器的微服務架構200

13.1.3業務功能點和數據表結構200

13.2開發商品管理微服務項目201

13.2.1開發商品管理模塊201

13.2.2開發網關模塊206

13.3容器化部署商品管理微服務208

13.3.1打包商品管理和網關模塊208

13.3.2容器化部署並運行MySQL和Redis208

13.3.3容器化部署並運行Nacos和Sentinel209

13.3.4容器化部署商品管理模塊209

13.3.5容器化部署網關模塊210

13.3.6觀察微服務容器化效果210

13.3.7引入限流和熔斷措施211

13.4擴容與灰度發布212

13.4.1演示擴容效果212

13.4.2演示灰度發布流程214

第14章使用Kubernetes整合Spring Boot項目216

14.1Kubernetes概述216

14.1.1Kubernetes的作用216

14.1.2搭建Kubernetes環境217

14.1.3Kubernetes與Docker容器的關系219

14.1.4Kubernetes的Service220

14.1.5Kubernetes的Labels220

14.1.6Deployment的概念220

14.1.7用Kubernetes編排Spring Boot容器221

14.1.8基於Spring Boot的Docker容器223

14.1.9編寫Service和Deployment配置文件224

14.1.10使用命令編排Spring Boot容器225

14.1.11測試Pod、Service和Deployment225

14.1.12查看Pod運行日誌225

14.2Kubernetes常用技術227

14.2.1刪除Pod、Service和Deployment227

14.2.2伸縮節點228

14.2.3自動伸縮節點228

14.2.4創建Deployment並開放埠229

14.2.5進入Pod執行命令230

14.2.6用Ingress暴露服務231

14.2.7Ingress簡介231

14.2.8Ingress整合Service的做法231

第15章使用Kubernetes編排微服務233

15.1使用Kubernetes編排組件233

15.2編排MySQL233

15.2.1編排Redis235

15.2.2StatefulSet和Deployment的差別237

15.2.3使用StatefulSet編排Nacos238

15.2.4使用StatefulSet編排Sentinel240

15.3使用Kubernetes編排圖書管理模塊242

15.3.1微服務框架說明243

15.3.2圖書管理微服務模塊243

15.3.3編排圖書管理微服務模塊247

15.3.4測試Kubernetes編排微服務項目的效果248

15.3.5引入限流和熔斷250

第16章基於Jenkins的微服務CI/CD實戰252

16.1CI/CD簡介252

16.2Jenkins安裝253

16.3Jenkins基本配置256

16.4自動構建項目258

16.4.1創建任務258

16.4.2設置源碼管理259

16.4.3構建步驟260

16.5測試步驟263

參考文獻265