3dwoo大學簡體電腦書店
Spring Boot+Spring Cloud+Spring Cloud Alibab
( 簡體 字)
作者:黃文毅類別:1. -> 程式設計 -> JAVA -> Spring
出版社:清華大學出版社Spring Boot+Spring Cloud+Spring Cloud Alibab 3dWoo書號: 54781
詢問書籍請說出此書號!
有庫存
NT售價: 495
出版日:7/1/2021
頁數:362
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302582236 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章從SpringBoot開始 1
1.1環境準備 1
1.1.1安裝JDK 1
1.1.2安裝IntellijIDEA 4
1.1.3安裝Maven 4
1.1.4Docker概述 5
1.2SpringBoot簡介 14
1.3第一個SpringBoot項目 16
1.3.1使用SpringInitializr新建項目 16
1.3.2測試 18
1.4SpringBoot目錄介紹 19
1.4.1SpringBoot工程目錄 19
1.4.2SpringBoot入口類 20
1.4.3SpringBoot測試類 20
1.4.4pom.xml文件 21
1.5SpringBoot生產級特性 23
1.5.1應用監控 23
1.5.2健康檢查 26
1.5.3跨域訪問 27
1.5.4外部配置 28
1.6SpringBoot原理解析 29
1.6.1DemoApplication入口類 29
1.6.2@SpringBootApplication的原理 29
1.6.3SpringApplication的run方法 31
1.6.4SpringApplicationRunListener監聽器 32
1.6.5ApplicationContextInitializer接口 32
1.6.6ApplicationRunner與CommandLineRunner 34
1.7SpringApplication的執行流程 35
1.7.1spring-boot-starter原理 36
1.7.2Bean參數獲取 39
1.7.3Bean的發現與加載 40
1.7.4自定義starter 46
第2章SpringCloud/SpringCloudAlibaba 52
2.1SpringCloud介紹 52
2.1.1SpringCloud的特性 52
2.1.2SpringCloud的模塊 53
2.1.3SpringCloud版本介紹 54
2.1.4SpringCloud與SpringBoot的關系 55
2.2SpringCloudAlibaba簡介 55
2.2.1SpringCloudAlibaba的主要功能 55
2.2.2SpringCloudAlibaba組件 56
2.2.3SpringCloudAlibaba版本簡介 57
2.4Netflix/SpringCloud/SpringCloudAlibaba的關系 58
第3章注冊中心/配置管理 59
3.1Nacos簡介 59
3.2Nacos快速開始 60
3.2.1NacosServer單機模式 60
3.2.2NacosServer集群模式 63
3.2.3Nacos+Nginx集群模式 66
3.3SpringBoot注冊到Nacos 67
3.3.1Nacos配置管理 67
3.3.2Nacos服務注冊 69
3.4NacosSpringCloud 70
3.4.1Nacos配置管理 70
3.4.2Nacos服務注冊 72
3.5Nacos原理解析 75
3.5.1Nacos配置中心原理分析 75
3.5.2Nacos服務發現原理分析 84
3.6Eureka服務發現 86
3.6.1Eureka簡介 86
3.6.2如何看待Eureka停產 88
3.6.3搭建Eureka注冊中心 88
3.6.4搭建Eureka注冊中心集群 92
3.7SpringCloudConsul 95
3.7.1Consul簡介 95
3.7.2Consul安裝與啟動 95
3.7.3Consul服務注冊與發現 96
3.7.4Consul配置中心 100
3.7.5Consul簡單架構 103
3.8SpringCloudConfig 104
3.8.1SpringCloudConfig簡介 104
3.8.2SpringCloudConfig快速入門 105
3.8.3SpringCloudConfig配置中心原理 108
第4章微服務網關 109
4.1Zuul網關 109
4.1.1Zuul概述 109
4.1.2Zuul快速入門 110
4.1.3Zuul路由配置 111
4.1.4Zuul過濾器 112
4.1.5管理端點 114
4.1.6禁用Zuul過濾器 115
4.1.7啟用Zuul跨域請求 115
4.1.8Eureka整合Zuul 116
4.2SpringCloudGateway 120
4.2.1Gateway簡介 120
4.2.2Gateway快速入門 121
4.2.3Gateway路由斷言工廠 123
4.2.4Gateway過濾器工廠 127
4.2.5Gateway全局過濾器 128
4.2.6Gateway跨域 131
4.2.7GatewayActuatorAPI 132
4.2.8HTTP超時配置 134
4.2.9TLS/SSL設置 135
4.2.10Gateway底層原理 136
4.3Gateway與Zuul的區別 137
第5章Ribbon負載均衡 138
5.1Ribbon基礎知識 138
5.1.1Ribbon簡介 138
5.1.2負載均衡算法 140
5.1.3第一個Ribbon程序 144
5.2Ribbon實戰 147
5.2.1Ribbon自定義負載均衡策略 147
5.2.2Ribbon饑餓加載 151
5.2.3Ribbon默認配置 151
5.2.4配置文件定義Ribbon客戶端 152
5.2.5直接使用RibbonAPI 153
5.2.6Eureka/Nacos整合Ribbon 153
第6章SpringCloudOpenFeign聲明式調用 155
6.1SpringCloudFeign 155
6.1.1Feign簡介 155
6.1.2第一個Feign程序 156
6.2FeignClient詳解與配置 161
6.2.1@FeignClient詳解 161
6.2.2FeignHystrix錯誤回退 166
6.2.3Feign@QueryMap支持 167
6.2.4HATEOAS支持 167
6.2.5Spring@MatrixVariable支持 168
6.2.6Feign繼承支持 168
6.2.7FeignCollectionFormat支持 169
6.2.8Feign請求響應壓縮 169
6.3Feign日志配置 170
6.3.1Java代碼方式 170
6.3.2配置文件方式 171
6.3.3全局日志配置 171
6.4自定義處理 172
6.4.1Feign自定義錯誤 172
6.4.2Feign攔截器 176
6.4.3自定義Feign客戶端 177
第7章熔斷、限流、降級 179
7.1SpringCloudHystrix 179
7.1.1Hystrix簡介 179
7.1.2Hystrix初體驗 182
7.1.3Hystrix請求緩存 184
7.1.4Hystrix請求合并 187
7.1.5Hystrix默認配置 190
7.1.6Hystrix配置詳解 191
7.2Hystrix工作流程 194
7.3Hystrix監控 196
7.3.1SpringBoot應用配置Hystrix儀表板 197
7.3.2Turbine集群監控 200
7.4Sentinel 204
7.4.1Sentinel簡介 204
7.4.2限流算法 204
7.4.3Sentinel項目結構 206
7.4.4Sentinel與Hystrix的區別 207
7.4.5Sentinel控制臺 207
7.4.6客戶端接入控制臺 209
7.4.7Sentinel微服務限流 210
第8章SpringCloudBus消息總線 214
8.1Kafka實現消息總線 214
8.1.1Kafka概述 214
8.1.2Kafka安裝 217
8.1.3Docker安裝ZooKeeper和Kafka 219
8.2Stream簡介 219
8.2.1核心概念 219
8.2.2Stream應用編程模型 220
8.2.3Binder抽象 220
8.2.4發布—訂閱 221
8.2.5消費組 221
8.2.6分區支持 221
8.2.7健康指標 221
8.3SpringCloudStream實戰 222
8.3.1Stream快速入門 222
8.3.2生產者的另一種實現 227
8.3.3生產和消費消息 229
8.4Bus簡介 232
8.4.1Bus消息總線 232
8.4.2Spring事件機制 232
8.4.3SpringCloudBus實戰 235
8.4.4SpringCloudBus原理 239
8.4.5SpringCloudBus端點 240
8.4.6Bus事件追蹤 240
第9章SpringCloudAlibabaSeata分布式事務 243
9.1Seata基礎知識 243
9.1.1Seata簡介 243
9.1.2Seata部署 244
9.1.3Seata原理與設計 246
9.2Seata使用 247
9.2.1數據庫準備 247
9.2.2創建微服務 248
第10章SpringCloudSleuth服務鏈路追蹤 257
10.1SpringCloudSleuth簡介 257
10.2Zipkin簡介 259
10.3SpringCloudSleuth整合Zipkin 261
10.3.1整合Zipkin 261
10.3.2MySQL存儲鏈路數據 265
10.3.3Sleuth抽樣采集 267
10.3.4Trace和Span 268
10.4SpringCloudSleuth整合ELK 271
10.5Sleuth原理淺析 275
10.5.1TraceId傳遞 275
10.5.2spring.factories配置文件 276
10.5.3TraceEnvironmentPostProcessor處理日志 278
10.5.4TraceAutoConfiguration 279
10.5.5TracingFilter過濾器 280
10.5.6TraceWebClientAutoConfiguration 283
第11章SpringCloudCommons 286
11.1SpringCloudCommons簡介 286
11.2SpringCloudContext功能 286
11.2.1bootstrap應用程序上下文 286
11.2.2修改bootstrap.properties位置 287
11.2.3覆蓋遠程屬性的值 287
11.2.4自定義bootstrap配置 287
11.2.5刷新范圍 288
11.2.6加密與解密 288
11.2.7Endpoints端點 288
11.3SpringCloudCommons功能 289
11.3.1@EnableDiscoveryClient注解 289
11.3.2服務注冊ServiceRegistry 290
11.3.3多個RestTemplate實例 290
11.3.4多個WebClient實例 291
11.3.5忽略網卡 293
11.3.6HTTP客戶端工廠 293
11.3.7啟用功能特性 294
11.3.8SpringCloud兼容性驗證 295
11.4SpringCloudLoadBalancer 295
11.4.1LoadBalancer簡介 295
11.4.2SpringCloudLoadBalancer緩存 296
11.4.3SpringCloudLoadBalancerStarter 296
11.4.4自定義SpringCloudLoadBalancer配置 297
11.5SpringCloudCircuitBreaker 297
11.5.1CircuitBreaker介紹 297
11.5.2核心概念 298
11.5.3配置斷路器 299
11.6具備緩存功能隨機數 300
第12章SpringCloudOAuth2.0保護API安全 301
12.1使用OAuth2.0進行授權 301
12.1.1OAuth2.0簡介 301
12.1.2OAuth2.0協議流程 302
12.1.3認證與授權 302
12.1.4OAuth2.0的授權方式 303
12.1.5SpringCloudSecurityOAuth2.0認證流程 305
12.2搭建OAuth2.0服務 306
12.2.1快速搭建OAuth2.0服務 306
12.2.2授權碼模式實現 308
12.3JWT簡介 313
12.3.1JWT的結構 313
12.3.2JWT的應用 315
12.3.3SpringSecurity+OAuth2.0+JWT應用 315
第13章SpringCloud組件容器化 336
13.1SpringBoot項目容器化 336
13.1.1制作鏡像 336
13.1.2使用Dockerfile構建鏡像 338
13.1.3SpringBoot集成Docker 341
13.2SpringCloudAlibaba組件容器化 345
13.2.1NacosDocker 345
13.2.2SentinelDocker 346
13.2.3SeataDocker 346
第14章使用SpringCloud構建微服務綜合案例 348
14.1案例介紹 348
14.2技術選型 348
14.2.1SpringBoot構建微服務 348
14.2.2Nacos注冊/配置中心 350
14.2.3SpringCloudGateway網關 352
14.2.4OpenFeign服務調用 355
14.2.5Ribbon負載均衡 355
14.2.6Sentinel熔斷/降級/限流 356
14.2.7ELK+FileBeat日志系統 357
14.2.8Promethous+Grafana+InfluxDB監控系統 359
14.2.9SkyWalking鏈路追蹤系統 363
14.3總結 365
參考文獻 366
本書以分布式微服務項目需求為主線,系統地介紹了Spring Boot、Spring Cloud、Spring Cloud Alibaba的生產級特性、重要組件及核心技術,包括服務治理、服務注冊與發現、負載均衡等分布式框架所需要的各種功能。本書共分為14章。第1章主要講解Spring Boot的重要功能特性以及閱讀本書之前需要準備的環境。第2章主要介紹Spring Cloud和Spring Cloud Alibaba模塊、版本以及之間的關系。第3章主要介紹注冊中心和配置中心Nacos以及其他開源的組件。第4章主要講解微服務網關Spring Cloud Gateway和Zuul。第5、6章主要講解負載均衡組件Ribbon和微服務調用組件OpenFeign。第7章主要講解服務限流、降級、容錯以及熔斷等技術,包括Hystrix組件和Sentinel組件。第8、9章主要介紹Spring Cloud Bus消息總線、分布式事務解決方案Seata。第10、11章主要講解鏈路追蹤組件Spring Cloud Sleuth和Zipkin,以及Spring Cloud Commons基礎包。第12章主要講解如何通過OAuth 2.0進行授權。第13章主要講解微服務和組件容器化。第14章主要介紹分布式微服務架構的具體案例。
本書技術先進,貼近實踐,講練結合,適合具有Java基礎或1~2年開發經驗的讀者使用,也可作為網課、培訓機構和大專院校的教學用書。
Spring Cloud/Spring Cloud Alibaba是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring Cloud并沒有重復制造輪子,它只是將各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝,屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。
本書理論與實踐并重,采用一步一步的教學方法,較為系統地介紹Spring Boot、Spring Cloud、Spring Cloud Alibaba的生產級特性、重要組件及核心技術,并通過大量生動形象的原理圖以及實踐案例加深讀者對分布式微服務架構的理解,希望對于擁有Java基礎或1~2年開發經驗、想突破開發瓶頸、進階架構師的讀者有所幫助。
讓我們開始Spring Boot、Spring Cloud、Spring Cloud Alibaba的探險之旅吧!
本書結構
本書共14章,以下是各章節的內容概要。
第1章首先介紹環境準備,包括安裝JDK、安裝Intellij IDEA、安裝Maven、Docker概述等;緊接著講述Spring Boot核心功能和生產級特性、快速搭建第一個Spring Boot項目、Spring Boot原理解析、SpringApplication執行流程以及如何自定義starter組件。
第2章主要介紹Spring Cloud功能特性、模塊以及版本信息,Spring Cloud和Spring Boot之間的關系,Spring Cloud Alibaba簡介、主要功能以及相關組件,最后介紹Netflix、Spring Cloud以及Spring Cloud Alibaba之間的關系。
第3章主要介紹Spring Cloud Alibaba的服務注冊和配置中心組件Nacos、Nacos單機模式/集群模式以及Nacos+Nginx集群模式搭建,Spring Boot如何注冊到Nacos以及如何將配置文件抽到Nacos配置中心,Nacos配置中心和服務發現原理分享,Eureka簡介以及如何通過Eureka搭建注冊中心集群,Spring Cloud Consul簡介、安裝與啟動,Spring Cloud Config簡介和原理等內容。
第4章首先介紹Zuul網關、快速搭建Zuul網關、Zuul網關路由配置/過濾器/管理端點等內容;接著介紹Spring Cloud Gateway相關內容,包括如何快速入門Spring Cloud Gateway、Gateway路由斷言工廠、全局過濾器、跨域、HTTP超時配置、TLS/SSL配置、Gateway底層原理等;最后對比Gateway和Zuul網關的區別。
第5章主要介紹Ribbon負載均衡器、常用負載均衡算法、如何自定義負載均衡算法、如何自定義Ribbon客戶端,最后介紹Eureka/Nacos如何整合Ribbon客戶端。
第6章主要介紹Spring Cloud OpenFeign聲明式調用,包括OpenFeign簡介、快速創建第一個Feign程序、@FeignClient注解詳解、Feign @QueryMap支持、Feign請求響應壓縮、Feign日志配置(Java方式、配置文件方式以及全局日志配置)、Feign自定義錯誤、Feign攔截器以及如何自定義Feign客戶端等內容。
第7章主要介紹熔斷、限流以及降級相關組件,包括Hystrix簡介、Hystrix請求緩存和請求合并、Spring Boot應用配置Hystrix儀表盤、Turbine集群監控、阿里Sentinel組件簡介、常用的限流算法、Sentinel與Hystrix的區別、Sentinel如何進行限流和熔斷降級等內容。
第8章主要介紹Spring Cloud Bus消息總線、Spring事件機制、Spring Cloud Bus原理、如何使用Kafka實現消息總線、Kafka介紹與安裝、Spring Cloud Stream簡介和核心概念講解、Stream應用編程模型/Binder抽象、Stream快速入門、Stream原理等內容。
第9章主要介紹Spring Cloud Alibaba Seata分布式事務組件,包括Seata簡介、Seata部署、Seata原理與設計以及如何通過Seata解決分布式事務問題等。
第10章主要介紹Spring Cloud Sleuth服務鏈路追蹤,包括Sleuth和Zipkin簡介、Zipkin安裝與快速啟動、Spring Cloud Sleuth整合Zipkin、Spring Cloud Sleuth整合ELK、Sleuth原理淺析等內容。
第11章主要介紹Spring Cloud Commons公共包、Spring Cloud Context功能、Spring Cloud Commons功能、Spring Cloud LoadBalance負載均衡、Spring Cloud Circuit Breaker斷路器介紹和核心概念等內容。
第12章主要介紹OAuth 2.0核心概念、OAuth 2.0協議流程、OAuth 2.0四種授權方式、快速搭建OAuth 2.0服務、授權碼模式實現、JWT簡介、JWT結構和應用,最后結合Spring Security + OAuth 2.0 + JWT開發的具體案例。
第13章主要介紹Spring Boot項目容器化、Spring Cloud Alibaba組件容器化,包括Nacos、Sentinel以及Seata等組件。
第14章主要介紹使用Spring Cloud、Spring Cloud Alibaba以及開源技術框架,一步一步搭建分布式微服務架構和服務治理平臺,并提供具體的架構圖和原理圖,幫助讀者理解分布式架構的具體細節。
學習本書的預備知識
Java基礎
讀者需要掌握J2SE基礎知識,這是最基本的,也是最重要的。
Java Web開發技術
在項目實戰中需要用到Java Web的相關技術,比如Spring、Spring MVC、Tomcat等技術。
Spring Boot技術
本書的很多內容都是建立在讀者了解Spring Boot的基礎上展開的,如果讀者對微服務腳手架Spring Boot的知識和功能特性有更多的了解,會更順利地閱讀本書。
其他技術
讀者需要了解目前主流的技術,比如數據庫MySQL、緩存Redis、消息中間件Kafka、容器技術Docker等。
本書使用的軟件版本
本書項目實戰開發環境為:
? 操作系統Mac Pro
? 開發工具Intellij IDEA 2019.3
? JDK 1.8版本以上
? Spring Boot 2.2x以上
? Spring Cloud Hoxton版本
? Spring Cloud Alibaba 2.2.0 RELEASE
? 其他主流技術基本使用最新版本
讀者對象
? 具有Java基礎的大學生。
? 擁有1~2年開發經驗的從業人員和運維人員。
? 網課、培訓機構、大專院校教學用書。
源代碼下載
可以用微信掃描下面的二維碼獲取本書配套的源文件。

如果閱讀過程中遇到問題,請聯系booksaga@126.com,郵件主題為“Spring Boot+Spring Cloud+Spring Cloud Alibaba微服務訓練營”。
致謝
本書能夠順利出版,首先感謝清華大學出版社的王金柱老師及背后的團隊為本書的辛勤付出,這是我第六次和王金柱老師合作,每次合作都能讓我感到輕松和快樂,我很享受寫作的過程。
感謝廈門海西醫藥交易有限公司,書中很多的知識點和項目實戰經驗都來源于貴公司,如果沒有貴公司提供的實戰案例,這本書就不可能問世。感謝技術總監趙定益認可和栽培,以及同事涂勇的鼎力支持解答。
感謝我的妻子郭雅蘋,感謝她一路不離不棄的陪伴和督促,感謝她對我工作的理解和支持。感謝家人對我生活無微不至的照顧,使我沒有后顧之憂,全身心投入本書的寫作中。

由于水平所限,書中所存不足敬請廣大讀者不吝指正。


黃文毅
2021年4月1日
pagetop