Spring Cloud Alibaba核心技術(shù)與實(shí)戰(zhàn)案例
本書從分布式系統(tǒng)的基礎(chǔ)概念講起,逐步深入分布式系統(tǒng)中間件Spring Cloud Alibaba進(jìn)階實(shí)戰(zhàn),重點(diǎn)介紹了使用Spring Cloud Alibaba框架整合各種分布式組件的完整過程,讓讀者不但可以系統(tǒng)地學(xué)習(xí)分布式中間件的相關(guān)知識(shí),
而且還能對(duì)業(yè)務(wù)邏輯的分析思路、實(shí)際應(yīng)用開發(fā)有更為深入的理解。
全書共分5大章節(jié),第1章開篇部分,講解分布式系統(tǒng)的演進(jìn)過程和Spring Cloud Alibaba概述及版本的選擇,以及單體架構(gòu)/微服務(wù)架構(gòu)的優(yōu)缺點(diǎn);第2章講解如何使用Spring Cloud Alibaba實(shí)現(xiàn)RPC通訊;第3章在介紹主流Nacos組件時(shí),介紹了三元的概念以及使用Nacos實(shí)現(xiàn)注冊(cè)中心和配置中心,包含環(huán)境的動(dòng)態(tài)切換、配置的動(dòng)態(tài)刷新、通用型配置、版本回滾等核心技術(shù),為微服務(wù)環(huán)境提供基礎(chǔ)的架構(gòu);第4章介紹了負(fù)責(zé)限流和熔斷降級(jí)的Sentinel組件,包含收集系統(tǒng)運(yùn)行狀態(tài)、流量控制、熔斷降級(jí)、熱點(diǎn)、授權(quán)、系統(tǒng)規(guī)則、流控的異常處理、熔斷的異常處理、規(guī)則持久化等;第4章介紹了網(wǎng)關(guān)常用案例,以及在軟件項(xiàng)目中常用的高頻使用技術(shù)點(diǎn),力求為開發(fā)微服務(wù)項(xiàng)目的程序員提供一個(gè)快速學(xué)習(xí)的捷徑。
本書內(nèi)容由淺入深、結(jié)構(gòu)清晰、實(shí)例豐富、通俗易懂、實(shí)用性強(qiáng),適合需要全方位學(xué)習(xí)Spring Cloud Alibaba相關(guān)技術(shù)的人員,也適合培訓(xùn)學(xué)校作為培訓(xùn)教材,還可作為大、中專院校相關(guān)專業(yè)的教學(xué)參考書。
高洪巖
----------------------------
高洪巖,微軟中國(guó)項(xiàng)目經(jīng)理,有10年Java開發(fā)和項(xiàng)目管理經(jīng)驗(yàn),精通Java語言,擅長(zhǎng)Java EE、分布式、微服務(wù)、高性能服務(wù)器架構(gòu)、智能報(bào)表、多線程和高并發(fā)相關(guān)的技術(shù)內(nèi)容。曾出版《Java多線程編程核心技術(shù)》《Java并發(fā)編程:核心方法與框架》《NIO與Socket編程技術(shù)指南》《Java EE核心框架實(shí)戰(zhàn)第2版》《Jasper Reports+iReport報(bào)表開發(fā)詳解》《Android學(xué)習(xí)精要》《虛擬化高性能NoSQL存儲(chǔ)案例精粹Redis+Docker》《Java Web實(shí)操》等圖書。
第1章 Spring Cloud Alibaba 介紹
1.1 Cloud 介紹.2
1.1.1? Spring Cloud 主要功能 2
1.1.2? Spring Cloud 主要組件 2
1.2 Cloud Alibaba 介紹 .3
1.2.1? Spring Cloud Alibaba 主要功能 3
1.2.2? Spring Cloud Alibaba 主要組件 4
1.3 確定使用的版本4
1.3.1? 確定 Spring Cloud+Spring Boot 的版本 4
1.3.2? 確定 Spring Cloud+Spring Cloud Alibaba+Spring Boot 的版本 7
1.4 單體架構(gòu)和優(yōu)缺點(diǎn)8
1.5 微服務(wù)架構(gòu)和優(yōu)缺點(diǎn) .9
第2章 RPC 遠(yuǎn)程通訊和 Nacos 注冊(cè)中心
2.1 Nacos 與 MySQL 關(guān)聯(lián) 12
2.2 創(chuàng)建 my-parent 父模塊 14
2.3 創(chuàng)建 my-api 模塊. 14
2.4 使用 Nacos+RestTemplate 實(shí)現(xiàn) RPC 通訊和服務(wù)提供者集群. 20
2.4.1? 創(chuàng)建服務(wù)提供者模塊 20
2.4.2? 創(chuàng)建服務(wù)消費(fèi)者模塊.37
2.5 Nacos 領(lǐng)域模型. 72
2.5.1? 創(chuàng)建 Namespace73
2.5.2? 創(chuàng)建服務(wù)提供者模塊.75
2.5.3? 創(chuàng)建服務(wù)消費(fèi)者模塊.77
2.5.4? 運(yùn)行效果.79
2.6 使用 Nginx 搭建 Nacos 集群環(huán)境 80
2.6.1? 搭建 Nacos 集群環(huán)境 .81
2.6.2? 創(chuàng)建服務(wù)提供者模塊.84
2.6.3? 創(chuàng)建服務(wù)消費(fèi)者模塊.86
2.6.4? 運(yùn)行效果.87
2.7 使用 Open Feign 實(shí)現(xiàn) RPC 通訊 . 89
2.7.1? 使用 Open Feign 實(shí)現(xiàn) RPC 通訊89
2.7.2? 使用 Spring-Cloud-Loadbalancer 實(shí)現(xiàn) Open Feign 負(fù)載均衡 .109
第3章 Nacos 配置中心
3.1 使用 Nacos 作為配置中心 113
3.1.1? 創(chuàng)建服務(wù)提供者和服務(wù)消費(fèi)者的 Namespace 和 DataId.113
3.1.2? 創(chuàng)建服務(wù)提供者模塊118
3.1.3? 創(chuàng)建服務(wù)消費(fèi)者模塊120
3.2 結(jié)合 Nacos 實(shí)現(xiàn)運(yùn)行環(huán)境的切換 . 122
3.3 結(jié)合 Nacos 實(shí)現(xiàn)配置動(dòng)態(tài)刷新:自定義配置 125
3.4 結(jié)合 Nacos 實(shí)現(xiàn)配置動(dòng)態(tài)刷新:系統(tǒng)配置(數(shù)據(jù)庫連接池)
. 131
3.5 實(shí)現(xiàn)通用配置的復(fù)用 . 137
3.6 實(shí)現(xiàn)配置的版本回滾 . 144
第4章 Sentinel 限流與熔斷降級(jí)
4.1 Sentinel 的介紹 . 147
4.1.1? Sentinel 具有的特性和支持的功能 147
4.1.2? Sentinel 的開源生態(tài).148
4.1.3? Sentinel 的用戶.149
4.1.4? Sentinel 的使用方式.149
4.1.5? Sentinel 的歷史.149
4.1.6? Sentinel 中的基本概念150
4.1.7? Sentinel 功能和設(shè)計(jì)理念 150
4.1.8? Sentinel 是如何工作的152
4.1.9? 滑動(dòng)窗口.152
4.2 搭建 Sentinel 控制臺(tái). 153
4.3 使用 Sentinel 收集系統(tǒng)運(yùn)行狀態(tài) 155
4.3.1? 創(chuàng)建服務(wù)提供者模塊 .155
4.3.2? 創(chuàng)建服務(wù)消費(fèi)者模塊156
4.3.3? 運(yùn)行效果.158
4.4 使用 Sentinel 實(shí)現(xiàn)流量控制 . 159
4.4.1? 查看資源運(yùn)行狀態(tài)159
4.4.2? 創(chuàng)建服務(wù)提供者模塊 .159
4.4.3? 創(chuàng)建服務(wù)消費(fèi)者模塊 .164
4.4.4? 配置流控界面解釋171
4.4.5? 測(cè)試:閾值類型(QPS)- 單機(jī)閾值(5)- 是否集群(否)-
流控模式(直接)- 流控效果(快速失。 173
4.4.6? 測(cè)試:閾值類型(QPS)- 單機(jī)閾值(1000)- 是否集群(否)-
流控模式(直接)- 流控效果(Warm Up) 174
4.4.7? 測(cè)試:閾值類型(QPS)- 單機(jī)閾值(2)- 是否集群(否)-
流控模式(直接)- 流控效果(排隊(duì)等待) 176
4.4.8? 測(cè)試:閾值類型(QPS)- 單機(jī)閾值(5)- 是否集群(否)-
流控模式(關(guān)聯(lián))- 流控效果(快速失。 177
4.4.9? 測(cè)試:閾值類型(QPS)- 單機(jī)閾值(5)- 是否集群(否)-
流控模式(鏈路)- 流控效果(快速失敗) 179
4.4.10? 測(cè)試:閾值類型(并發(fā)線程數(shù))- 單機(jī)閾值(5)- 集群(否)-
流控模式(直接) 180
4.5 使用 Sentinel 實(shí)現(xiàn)熔斷降級(jí) . 181
4.5.1? 慢調(diào)用比例 / 異常比例 / 異常數(shù).182
4.5.2? 熱點(diǎn)204
4.5.3? 授權(quán)規(guī)則.222
4.5.4? 系統(tǒng)規(guī)則.227
4.5.5? 流控異常處理.233
4.5.6? 熔斷異常處理.239
4.6 規(guī)則持久化 . 249
4.6.1? 拉模式:使用文件249
4.6.2? 推模式:使用 Nacos 258
第5章 網(wǎng)關(guān) Gateway
5.1 網(wǎng)關(guān)的介紹和作用 269
5.2 網(wǎng)關(guān)謂詞工廠 270
5.3 網(wǎng)關(guān)謂詞 271
5.3.1? 謂詞 Path:實(shí)現(xiàn)路由轉(zhuǎn)發(fā).271
5.3.2? 謂詞 Path:根據(jù) ip:port 和 serviceName 轉(zhuǎn)發(fā)到服務(wù) 272
5.3.3? 謂詞 Path:實(shí)現(xiàn)網(wǎng)關(guān)跨域.274
5.3.4? 謂詞 After 277
5.3.5? 謂詞 Before 279
5.3.6? 謂詞 Between 280
5.3.7? 謂詞 Cookie .281
5.3.8? 謂詞 Header 284
5.3.9? 謂詞 Query 286
5.3.10? 謂詞 Host 287
5.3.11? 謂詞 Method .289
5.3.12? 謂詞 RemoteAddr291
5.3.13? 謂詞 Weight 292
5.3.14? 自定義謂詞 293
5.4 路由過濾器 . 297
5.4.1? 自帶路由過濾器 .297
5.4.2? 自定義路由過濾器299
5.5 全局過濾器 . 302
5.5.1? 自定義全局過濾器302
5.5.2? 運(yùn)行效果.304