
掃描右側(cè)圖片或微信搜索 “ Java技術(shù)分享屋 ” ,回復(fù) “ 驗(yàn)證碼 ” ,獲取驗(yàn)證密碼。
本資料僅供讀者預(yù)覽及學(xué)習(xí)交流使用,不能用于商業(yè)用途,請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。如果喜歡,請(qǐng)購(gòu)買正版!
一.資料截圖
二.資料介紹
作為一部幫助大家實(shí)現(xiàn)微服務(wù)架構(gòu)落地的作品,《Spring Cloud與Docker微服務(wù)架構(gòu)實(shí)戰(zhàn)》覆蓋了微服務(wù)理論、微服務(wù)開(kāi)發(fā)框架(Spring Cloud)以及運(yùn)行平臺(tái)(Docker)三大主題。全書可分為三部分,第1章對(duì)微服務(wù)架構(gòu)進(jìn)行了系統(tǒng)的介紹;第2-11章使用Spring Cloud開(kāi)發(fā)框架編寫了一個(gè)“電影售票系統(tǒng)”;第12-14章則講解了如何將微服務(wù)應(yīng)用運(yùn)行在Docker之上。全書Demo驅(qū)動(dòng)學(xué)習(xí),以連貫的場(chǎng)景、具體的代碼示例來(lái)引導(dǎo)讀者學(xué)習(xí)相關(guān)知識(shí),最終使用特定的技術(shù)棧實(shí)現(xiàn)微服務(wù)架構(gòu)的落地。
三.資料目錄
1 微服務(wù)架構(gòu)概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 單體應(yīng)用架構(gòu)存在的問(wèn)題1
1.2 如何解決單體應(yīng)用架構(gòu)存在的問(wèn)題3
1.3 什么是微服務(wù)3
1.4 微服務(wù)架構(gòu)的優(yōu)點(diǎn)與挑戰(zhàn)5
1.4.1 微服務(wù)架構(gòu)的優(yōu)點(diǎn)5
1.4.2 微服務(wù)架構(gòu)面臨的挑戰(zhàn)5
1.5 微服務(wù)設(shè)計(jì)原則6
1.6 如何實(shí)現(xiàn)微服務(wù)架構(gòu)7
1.6.1 技術(shù)選型7
1.6.2 架構(gòu)圖及常用組件8
2 微服務(wù)開(kāi)發(fā)框架——Spring Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Spring Cloud 簡(jiǎn)介10
2.2 Spring Cloud 特點(diǎn)10
2.3 Spring Cloud 版本11
2.3.1 版本簡(jiǎn)介11
2.3.2 子項(xiàng)目一覽12
2.3.3 Spring Cloud/Spring Boot 版本兼容性13
3 開(kāi)始使用Spring Cloud 實(shí)戰(zhàn)微服務(wù). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Spring Cloud 實(shí)戰(zhàn)前提14
3.1.1 技術(shù)儲(chǔ)備14
3.1.2 工具及軟件版本15
3.2 服務(wù)提供者與服務(wù)消費(fèi)者16
3.3 編寫服務(wù)提供者16
3.3.1 手動(dòng)編寫項(xiàng)目17
3.3.2 使用Spring Initializr 快速創(chuàng)建Spring Boot 項(xiàng)目21
3.4 編寫服務(wù)消費(fèi)者23
3.5 為項(xiàng)目整合Spring Boot Actuator 25
3.6 硬編碼有哪些問(wèn)題27
4 微服務(wù)注冊(cè)與發(fā)現(xiàn). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1 服務(wù)發(fā)現(xiàn)簡(jiǎn)介29
4.2 Eureka 簡(jiǎn)介31
4.3 Eureka 原理31
4.4 編寫Eureka Server 33
4.5 將微服務(wù)注冊(cè)到Eureka Server 上35
4.6 Eureka Server 的高可用36
4.6.1 將應(yīng)用注冊(cè)到Eureka Server 集群上38
4.7 為Eureka Server 添加用戶認(rèn)證39
4.7.1 將微服務(wù)注冊(cè)到需認(rèn)證的Eureka Server 40
4.8 理解Eureka 的元數(shù)據(jù)41
4.8.1 改造用戶微服務(wù)41
4.8.2 改造電影微服務(wù)41
4.9 Eureka Server 的REST 端點(diǎn)43
4.9.1 示例45
4.9.2 注銷微服務(wù)實(shí)例49
4.10 Eureka 的自我保護(hù)模式51
4.11 多網(wǎng)卡環(huán)境下的IP 選擇52
4.11.1 忽略指定名稱的網(wǎng)卡52
4.11.2 使用正則表達(dá)式,指定使用的網(wǎng)絡(luò)地址52
4.11.3 只使用站點(diǎn)本地地址53
4.11.4 手動(dòng)指定IP 地址53
4.12 Eureka 的健康檢查53
5 使用Ribbon 實(shí)現(xiàn)客戶端側(cè)負(fù)載均衡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1 Ribbon 簡(jiǎn)介56
5.2 為服務(wù)消費(fèi)者整合Ribbon 57
5.3 使用Java 代碼自定義Ribbon 配置60
5.4 使用屬性自定義Ribbon 配置63
5.5 脫離Eureka 使用Ribbon 64
6 使用Feign 實(shí)現(xiàn)聲明式REST 調(diào)用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.1 Feign 簡(jiǎn)介67
6.2 為服務(wù)消費(fèi)者整合Feign 67
6.3 自定義Feign 配置69
6.4 手動(dòng)創(chuàng)建Feign 72
6.4.1 修改用戶微服務(wù)72
6.4.2 修改電影微服務(wù)76
6.5 Feign 對(duì)繼承的支持78
6.6 Feign 對(duì)壓縮的支持79
6.7 Feign 的日志80
6.8 使用Feign 構(gòu)造多參數(shù)請(qǐng)求82
6.8.1 GET 請(qǐng)求多參數(shù)的URL 82
6.8.2 POST 請(qǐng)求包含多個(gè)參數(shù)83
7 使用Hystrix 實(shí)現(xiàn)微服務(wù)的容錯(cuò)處理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.1 實(shí)現(xiàn)容錯(cuò)的手段85
7.1.1 雪崩效應(yīng)85
7.1.2 如何容錯(cuò)86
7.2 使用Hystrix 實(shí)現(xiàn)容錯(cuò)88
7.2.1 Hystrix 簡(jiǎn)介88
7.2.2 通用方式整合Hystrix 89
7.2.3 Hystrix 斷路器的狀態(tài)監(jiān)控與深入理解91
7.2.4 Hystrix 線程隔離策略與傳播上下文93
7.2.5 Feign 使用Hystrix 96
7.3 Hystrix 的監(jiān)控101
7.3.1 Feign 項(xiàng)目的Hystrix 監(jiān)控102
7.4 使用Hystrix Dashboard 可視化監(jiān)控?cái)?shù)據(jù)103
7.5 使用Turbine 聚合監(jiān)控?cái)?shù)據(jù)105
7.5.1 Turbine 簡(jiǎn)介105
7.5.2 使用Turbine 監(jiān)控多個(gè)微服務(wù)105
7.5.3 使用消息中間件收集數(shù)據(jù)108
8 使用Zuul 構(gòu)建微服務(wù)網(wǎng)關(guān). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.1 為什么要使用微服務(wù)網(wǎng)關(guān)113
8.2 Zuul 簡(jiǎn)介115
8.3 編寫Zuul 微服務(wù)網(wǎng)關(guān)115
8.4 Zuul 的路由端點(diǎn)118
8.5 Zuul 的路由配置詳解119
8.6 Zuul 的安全與Header 122
8.6.1 敏感Header 的設(shè)置122
8.6.2 忽略Header 123
8.7 使用Zuul 上傳文件124
8.7.1 編寫文件上傳微服務(wù)124
8.8 Zuul 的過(guò)濾器127
8.8.1 過(guò)濾器類型與請(qǐng)求生命周期127
8.8.2 編寫Zuul 過(guò)濾器128
8.8.3 禁用Zuul 過(guò)濾器130
8.9 Zuul 的容錯(cuò)與回退130
8.9.1 為Zuul 添加回退131
8.10 Zuul 的高可用133
8.10.1 Zuul 客戶端也注冊(cè)到了Eureka Server 上133
8.10.2 Zuul 客戶端未注冊(cè)到Eureka Server 上133
8.11 使用Sidecar 整合非JVM 微服務(wù)134
8.11.1 編寫Node.js 微服務(wù)135
8.11.2 編寫Sidecar 136
8.11.3 Sidecar 的端點(diǎn)138
8.11.4 Sidecar 與Node.js 微服務(wù)分離部署139
8.11.5 Sidecar 原理分析139
9 使用Spring Cloud Config 統(tǒng)一管理微服務(wù)配置. . . . . . . . . . . . . . . . . . . . . . . 142
9.1 為什么要統(tǒng)一管理微服務(wù)配置142
9.2 Spring Cloud Config 簡(jiǎn)介143
9.3 編寫Config Server 144
9.3.1 Config Server 的端點(diǎn)145
9.4 編寫Config Client 147
9.5 Config Server 的Git 倉(cāng)庫(kù)配置詳解149
9.6 Config Server 的健康狀況指示器152
9.7 配置內(nèi)容的加解密153
9.7.1 安裝JCE 153
9.7.2 Config Server 的加解密端點(diǎn)153
9.7.3 對(duì)稱加密153
9.7.4 存儲(chǔ)加密的內(nèi)容154
9.7.5 非對(duì)稱加密155
9.8 使用/refresh 端點(diǎn)手動(dòng)刷新配置155
9.9 使用Spring Cloud Bus 自動(dòng)刷新配置157
9.9.1 Spring Cloud Bus 簡(jiǎn)介157
9.9.2 實(shí)現(xiàn)自動(dòng)刷新158
9.9.3 局部刷新159
9.9.4 架構(gòu)改進(jìn)159
9.9.5 跟蹤總線事件160
9.10 Spring Cloud Config 與Eureka 配合使用161
9.11 Spring Cloud Config 的用戶認(rèn)證162
9.11.1 Config Client 連接需用戶認(rèn)證的Config Server 163
9.12 Config Server 的高可用164
9.12.1 Git 倉(cāng)庫(kù)的高可用164
9.12.2 RabbitMQ 的高可用164
9.12.3 Config Server 自身的高可用165
10 使用Spring Cloud Sleuth 實(shí)現(xiàn)微服務(wù)跟蹤. . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
10.1 為什么要實(shí)現(xiàn)微服務(wù)跟蹤167
10.2 Spring Cloud Sleuth 簡(jiǎn)介168
10.3 整合Spring Cloud Sleuth 170
10.4 Spring Cloud Sleuth 與ELK 配合使用172
10.5 Spring Cloud Sleuth 與Zipkin 配合使用176
10.5.1 Zipkin 簡(jiǎn)介176
10.5.2 編寫Zipkin Server 176
10.5.3 微服務(wù)整合Zipkin 178
10.5.4 使用消息中間件收集數(shù)據(jù)181
10.5.5 存儲(chǔ)跟蹤數(shù)據(jù)183
11 Spring Cloud 常見(jiàn)問(wèn)題與總結(jié). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.1 Eureka 常見(jiàn)問(wèn)題186
11.1.1 Eureka 注冊(cè)服務(wù)慢186
11.1.2 已停止的微服務(wù)節(jié)點(diǎn)注銷慢或不注銷187
11.1.3 如何自定義微服務(wù)的Instance ID 188
11.1.4 Eureka 的UNKNOWN 問(wèn)題總結(jié)與解決189
11.2 Hystrix/Feign 整合Hystrix 后首次請(qǐng)求失敗190
11.2.1 原因分析191
11.2.2 解決方案191
11.3 Turbine 聚合的數(shù)據(jù)不完整191
11.3.1 解決方案192
11.4 Spring Cloud 各組件配置屬性193
11.4.1 Spring Cloud 的配置193
11.4.2 原生配置193
11.5 Spring Cloud 定位問(wèn)題思路總結(jié)194
12 Docker 入門. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
12.1 Docker 簡(jiǎn)介197
12.2 Docker 的架構(gòu)197
12.3 安裝Docker 199
12.3.1 系統(tǒng)要求199
12.3.2 移除非官方軟件包199
12.3.3 設(shè)置Yum 源199
12.3.4 安裝Dokcer 200
12.3.5 卸載Docker 201
12.4 配置鏡像加速器201
12.5 Docker 常用命令202
12.5.1 Docker 鏡像常用命令202
12.5.2 Docker 容器常用命令204
13 將微服務(wù)運(yùn)行在Docker 上. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
13.1 使用Dockerfile 構(gòu)建Docker 鏡像209
13.1.1 Dockerfile 常用指令210
13.1.2 使用Dockerfile 構(gòu)建鏡像215
13.2 使用Docker Registry 管理Docker 鏡像217
13.2.1 使用Docker Hub 管理鏡像217
13.2.2 使用私有倉(cāng)庫(kù)管理鏡像219
13.3 使用Maven 插件構(gòu)建Docker 鏡像220
13.3.1 快速入門221
13.3.2 插件讀取Dockerfile 進(jìn)行構(gòu)建222
13.3.3 將插件綁定在某個(gè)phase 執(zhí)行223
13.3.4 推送鏡像224
13.4 常見(jiàn)問(wèn)題與總結(jié)226
14 使用Docker Compose 編排微服務(wù). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
14.1 Docker Compose 簡(jiǎn)介227
14.2 安裝Docker Compose 227
14.2.1 安裝Compose 228
14.2.2 安裝Compose 命令補(bǔ)全工具228
14.3 Docker Compose 快速入門229
14.3.1 基本步驟229
14.3.2 入門示例229
14.3.3 工程、服務(wù)、容器230
14.4 docker-compose.yml 常用命令230
14.4.1 build 230
14.4.2 command 231
14.4.3 dns 231
14.4.4 dns_search 231
14.4.5 environment 231
14.4.6 env_file 232
14.4.7 expose 232
14.4.8 external_links 232
14.4.9 image 232
14.4.10 links 232
14.4.11 networks 233
14.4.12 network_mode 233
14.4.13 ports 233
14.4.14 volumes 233
14.4.15 volumes_from 234
14.5 docker-compose 常用命令234
14.5.1 build 234
14.5.2 help 235
14.5.3 kill 235
14.5.4 logs 235
14.5.5 port 235
14.5.6 ps 235
14.5.7 pull 235
14.5.8 rm 236
14.5.9 run 236
14.5.10 scale 236
14.5.11 start 236
14.5.12 stop 236
14.5.13 up 236
14.6 Docker Compose 網(wǎng)絡(luò)設(shè)置237
14.6.1 基本概念237
14.6.2 更新容器237
14.6.3 links 238
14.6.4 指定自定義網(wǎng)絡(luò)238
14.6.5 配置默認(rèn)網(wǎng)絡(luò)239
14.6.6 使用已存在的網(wǎng)絡(luò)239
14.7 綜合實(shí)戰(zhàn):使用Docker Comose 編排Spring Cloud 微服務(wù)240
14.7.1 編排Spring Cloud 微服務(wù)240
14.7.2 編排高可用的Eureka Server 243
14.7.3 編排高可用Spring Cloud 微服務(wù)集群及動(dòng)態(tài)伸縮245
14.8 常見(jiàn)問(wèn)題與總結(jié)247
后記. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248