Spring Cloud Alibaba微服務開發
李西明、陳立為
- 出版商: 清華大學
- 出版日期: 2025-03-01
- 定價: $354
- 售價: 8.5 折 $301
- 語言: 簡體中文
- ISBN: 7302679568
- ISBN-13: 9787302679561
-
相關分類:
Microservices 微服務、SOA、Java 相關技術
下單後立即進貨 (約4週~6週)
商品描述
目錄大綱
目錄
第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