Spring Cloud Alibaba核心技術(shù)與實戰(zhàn)案例
本書從分布式系統(tǒng)的基礎概念講起,逐步深入分布式系統(tǒng)中間件Spring Cloud Alibaba進階實戰(zhàn),重點介紹了使用Spring Cloud Alibaba框架整合各種分布式組件的完整過程,讓讀者不但可以系統(tǒng)地學習分布式中間件的相關(guān)知識,
而且還能對業(yè)務邏輯的分析思路、實際應用開發(fā)有更為深入的理解。
全書共分5大章節(jié),第1章開篇部分,講解分布式系統(tǒng)的演進過程和Spring Cloud Alibaba概述及版本的選擇,以及單體架構(gòu)/微服務架構(gòu)的優(yōu)缺點;第2章講解如何使用Spring Cloud Alibaba實現(xiàn)RPC通訊;第3章在介紹主流Nacos組件時,介紹了三元的概念以及使用Nacos實現(xiàn)注冊中心和配置中心,包含環(huán)境的動態(tài)切換、配置的動態(tài)刷新、通用型配置、版本回滾等核心技術(shù),為微服務環(huán)境提供基礎的架構(gòu);第4章介紹了負責限流和熔斷降級的Sentinel組件,包含收集系統(tǒng)運行狀態(tài)、流量控制、熔斷降級、熱點、授權(quán)、系統(tǒng)規(guī)則、流控的異常處理、熔斷的異常處理、規(guī)則持久化等;第4章介紹了網(wǎng)關(guān)常用案例,以及在軟件項目中常用的高頻使用技術(shù)點,力求為開發(fā)微服務項目的程序員提供一個快速學習的捷徑。
本書內(nèi)容由淺入深、結(jié)構(gòu)清晰、實例豐富、通俗易懂、實用性強,適合需要全方位學習Spring Cloud Alibaba相關(guān)技術(shù)的人員,也適合培訓學校作為培訓教材,還可作為大、中專院校相關(guān)專業(yè)的教學參考書。
高洪巖
----------------------------
高洪巖,微軟中國項目經(jīng)理,有10年Java開發(fā)和項目管理經(jīng)驗,精通Java語言,擅長Java EE、分布式、微服務、高性能服務器架構(gòu)、智能報表、多線程和高并發(fā)相關(guān)的技術(shù)內(nèi)容。曾出版《Java多線程編程核心技術(shù)》《Java并發(fā)編程:核心方法與框架》《NIO與Socket編程技術(shù)指南》《Java EE核心框架實戰(zhàn)第2版》《Jasper Reports+iReport報表開發(fā)詳解》《Android學習精要》《虛擬化高性能NoSQL存儲案例精粹Redis+Docker》《Java Web實操》等圖書。
第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)缺點8
1.5 微服務架構(gòu)和優(yōu)缺點 .9
第2章 RPC 遠程通訊和 Nacos 注冊中心
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 實現(xiàn) RPC 通訊和服務提供者集群. 20
2.4.1? 創(chuàng)建服務提供者模塊 20
2.4.2? 創(chuàng)建服務消費者模塊.37
2.5 Nacos 領(lǐng)域模型. 72
2.5.1? 創(chuàng)建 Namespace73
2.5.2? 創(chuàng)建服務提供者模塊.75
2.5.3? 創(chuàng)建服務消費者模塊.77
2.5.4? 運行效果.79
2.6 使用 Nginx 搭建 Nacos 集群環(huán)境 80
2.6.1? 搭建 Nacos 集群環(huán)境 .81
2.6.2? 創(chuàng)建服務提供者模塊.84
2.6.3? 創(chuàng)建服務消費者模塊.86
2.6.4? 運行效果.87
2.7 使用 Open Feign 實現(xiàn) RPC 通訊 . 89
2.7.1? 使用 Open Feign 實現(xiàn) RPC 通訊89
2.7.2? 使用 Spring-Cloud-Loadbalancer 實現(xiàn) Open Feign 負載均衡 .109
第3章 Nacos 配置中心
3.1 使用 Nacos 作為配置中心 113
3.1.1? 創(chuàng)建服務提供者和服務消費者的 Namespace 和 DataId.113
3.1.2? 創(chuàng)建服務提供者模塊118
3.1.3? 創(chuàng)建服務消費者模塊120
3.2 結(jié)合 Nacos 實現(xiàn)運行環(huán)境的切換 . 122
3.3 結(jié)合 Nacos 實現(xiàn)配置動態(tài)刷新:自定義配置 125
3.4 結(jié)合 Nacos 實現(xiàn)配置動態(tài)刷新:系統(tǒng)配置(數(shù)據(jù)庫連接池)
. 131
3.5 實現(xiàn)通用配置的復用 . 137
3.6 實現(xiàn)配置的版本回滾 . 144
第4章 Sentinel 限流與熔斷降級
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 功能和設計理念 150
4.1.8? Sentinel 是如何工作的152
4.1.9? 滑動窗口.152
4.2 搭建 Sentinel 控制臺. 153
4.3 使用 Sentinel 收集系統(tǒng)運行狀態(tài) 155
4.3.1? 創(chuàng)建服務提供者模塊 .155
4.3.2? 創(chuàng)建服務消費者模塊156
4.3.3? 運行效果.158
4.4 使用 Sentinel 實現(xiàn)流量控制 . 159
4.4.1? 查看資源運行狀態(tài)159
4.4.2? 創(chuàng)建服務提供者模塊 .159
4.4.3? 創(chuàng)建服務消費者模塊 .164
4.4.4? 配置流控界面解釋171
4.4.5? 測試:閾值類型(QPS)- 單機閾值(5)- 是否集群(否)-
流控模式(直接)- 流控效果(快速失。 173
4.4.6? 測試:閾值類型(QPS)- 單機閾值(1000)- 是否集群(否)-
流控模式(直接)- 流控效果(Warm Up) 174
4.4.7? 測試:閾值類型(QPS)- 單機閾值(2)- 是否集群(否)-
流控模式(直接)- 流控效果(排隊等待) 176
4.4.8? 測試:閾值類型(QPS)- 單機閾值(5)- 是否集群(否)-
流控模式(關(guān)聯(lián))- 流控效果(快速失敗) 177
4.4.9? 測試:閾值類型(QPS)- 單機閾值(5)- 是否集群(否)-
流控模式(鏈路)- 流控效果(快速失。 179
4.4.10? 測試:閾值類型(并發(fā)線程數(shù))- 單機閾值(5)- 集群(否)-
流控模式(直接) 180
4.5 使用 Sentinel 實現(xiàn)熔斷降級 . 181
4.5.1? 慢調(diào)用比例 / 異常比例 / 異常數(shù).182
4.5.2? 熱點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:實現(xiàn)路由轉(zhuǎn)發(fā).271
5.3.2? 謂詞 Path:根據(jù) ip:port 和 serviceName 轉(zhuǎn)發(fā)到服務 272
5.3.3? 謂詞 Path:實現(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? 運行效果.304