微服務(wù)分布式架構(gòu)基礎(chǔ)與實(shí)戰(zhàn)——基于Spring Boot + Spring Cloud
定 價(jià):59 元
- 作者:張方興
- 出版時(shí)間:2020/3/1
- ISBN:9787121384134
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP368.5
- 頁(yè)碼:272
- 紙張:膠版紙
- 版次:01
- 開本:16K
微服務(wù)分布式架構(gòu)的內(nèi)容更新迭代速度極快,2018年6月開始就有許多微服務(wù)分布式的數(shù)據(jù),但是到2019年已經(jīng)跟不上Spring Cloud的版本了,過去大多數(shù)數(shù)據(jù)Spring Cloud都用Eureka作為注冊(cè)中心,而Spring 官方已經(jīng)在Spring Cloud Eureka 2.0以后宣布停止了Spring Cloud Eureka的更新計(jì)劃,廢棄該項(xiàng)目并將Consul作為Spring Cloud的注冊(cè)中心。另外大多數(shù)書籍的網(wǎng)關(guān)依舊使用的Spring Cloud Zuul,但是目前Spring 已經(jīng)逐漸廢棄Spring Cloud Zuul,而是讓Spring Cloud Gateway接替他的網(wǎng)關(guān)位置。市面上的同類書的技術(shù)將沒有將此內(nèi)容更新。另外本書從分布式架構(gòu)程序的方式角度進(jìn)行講解,包括分布式任務(wù)調(diào)度、分布式事務(wù)管理,重點(diǎn)提及了這部分的實(shí)戰(zhàn)與思想。很多書只是用來(lái)教導(dǎo)框架構(gòu)架,而本書則希望通過框架讓讀者認(rèn)識(shí)分布式的具體操作方法。本書以案例任務(wù)模式主要介紹了Spring Boot微服務(wù)的持久化、緩存、緩存同步、隊(duì)列,Spring Cloud的新版注冊(cè)中心Consul、新版網(wǎng)關(guān)Spring Cloud Gateway、Spring Cloud分布式通訊、共享信息、單點(diǎn)登錄、鑒權(quán)等相關(guān)內(nèi)容。
張方興,多年從事Java編程工作,參與多個(gè)項(xiàng)目的研發(fā)工作,精通Java編程與SSM技術(shù)。
第1章 微服務(wù)分布式架構(gòu)設(shè)計(jì)原理 1
1.1 Java Web應(yīng)用程序的發(fā)展歷史 1
1.2 微服務(wù)分布式 2
1.2.1 Spring Boot微服務(wù)的定義和特點(diǎn) 3
1.2.2 Spring Boot的職場(chǎng)導(dǎo)讀 3
1.2.3 Spring部分內(nèi)容 4
1.2.4 微服務(wù)的拆分 6
1.3 【實(shí)例】微服務(wù)工程Hello World 7
1.3.1 實(shí)例背景 7
1.3.2 創(chuàng)建Maven Project 7
1.3.3 使用空Maven Project模板 7
1.3.4 編輯Maven坐標(biāo)定位及工程名 8
1.3.5 檢查Maven目錄結(jié)構(gòu) 9
1.3.6 編寫Pom文件 10
1.3.7 Spring Boot依賴包的導(dǎo)入 12
1.3.8 編寫Spring Boot啟動(dòng)類 14
1.3.9 編寫Spring Boot接口 14
1.3.10 當(dāng)前項(xiàng)目結(jié)構(gòu) 14
1.3.11 啟動(dòng)工程 15
1.3.12 Spring Boot初始化啟動(dòng)后 16
1.3.13 實(shí)例易錯(cuò)點(diǎn) 16
1.4 Spring Boot啟動(dòng)類掃描Bean 18
1.4.1 @SpringBootApplication注解 18
1.4.2 @ComponentScan注解 20
1.4.3 Spring Boot掃描其他包下文件 20
1.5 【實(shí)例】將端口號(hào)改成9090 21
1.5.1 實(shí)例背景 21
1.5.2 創(chuàng)建application.properties資源配置
文件 22
1.5.3 增加資源配置文件中的配置信息 23
1.5.4 運(yùn)行結(jié)果 23
1.5.5 實(shí)例易錯(cuò)點(diǎn) 23
1.6 YAML文件 24
1.6.1 YAML文件簡(jiǎn)介 25
1.6.2 YAML文件的書寫格式 25
1.7 【實(shí)例】使用YAML配置文件 25
1.7.1 實(shí)例背景 25
1.7.2 原properties文件 25
1.7.3 轉(zhuǎn)換格式后的YAML文件 26
1.7.4 實(shí)例易錯(cuò)點(diǎn) 26
1.8 【實(shí)例】通過單配置文件讓工程
適應(yīng)多應(yīng)用場(chǎng)景 27
1.8.1 實(shí)例背景 27
1.8.2 更改application.yml文件 27
1.8.3 更改啟動(dòng)類 27
1.8.4 輸入啟動(dòng)參數(shù) 29
1.8.5 運(yùn)行結(jié)果 30
1.8.6 實(shí)例易錯(cuò)點(diǎn) 30
1.9 【實(shí)例】通過多配置文件使工程
適應(yīng)多應(yīng)用場(chǎng)景 31
1.9.1 實(shí)例背景 31
1.9.2 新建SIT和UAT環(huán)境所需資源
配置文件 31
1.9.3 新建系統(tǒng)資源配置文件 31
1.9.4 編寫啟動(dòng)類 31
1.9.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 32
1.9.6 運(yùn)行結(jié)果 32
1.10 微服務(wù)配置權(quán)重 32
1.10.1 資源配置信息類型的權(quán)重 32
1.10.2 資源配置文件類型的權(quán)重 33
1.10.3 資源配置文件存在位置與權(quán)重
解讀 33
1.11 本章小結(jié) 34
1.12 習(xí)題 34
第2章 分布式的注冊(cè)中心 35
2.1 注冊(cè)中心 35
2.1.1 Eureka與Consul的區(qū)別 35
2.1.2 Consul的相關(guān)術(shù)語(yǔ) 37
2.1.3 Consul的安裝 37
2.2 Consul的常用命令 37
2.2.1 consul agent -dev 38
2.2.2 consul -members 39
2.2.3 consul leave 40
2.2.4 agent命令的常用配置參數(shù) 40
2.2.5 HTTP API 41
2.3 【實(shí)例】創(chuàng)建第一個(gè)微服務(wù)分布式
項(xiàng)目 42
2.3.1 實(shí)例背景 42
2.3.2 搭建Consul集群 42
2.3.3 創(chuàng)建微服務(wù)工程編寫相應(yīng)依賴
文件 45
2.3.4 Spring Cloud和Spring Boot的
版本對(duì)應(yīng)關(guān)系 46
2.3.5 編寫微服務(wù)YAML資源配置文件 46
2.3.6 編寫微服務(wù)啟動(dòng)類注冊(cè)到
Consul上 48
2.3.7 當(dāng)前項(xiàng)目結(jié)構(gòu) 48
2.3.8 運(yùn)行結(jié)果 49
2.3.9 實(shí)例易錯(cuò)點(diǎn) 50
2.4 【實(shí)例】通過代碼獲取Consul中的
服務(wù)信息 51
2.4.1 實(shí)例背景 51
2.4 2 編寫獲得其他注冊(cè)服務(wù)的代碼 52
2.4 3 運(yùn)行結(jié)果 53
2.4.4 實(shí)例易錯(cuò)點(diǎn) 53
2.5 【實(shí)例】Spring Cloud操作Consul
的K/V存儲(chǔ) 54
2.5.1 實(shí)例背景 54
2.5.2 添加依賴 54
2.5.3 利用Consul的UI界面添加K/V
存儲(chǔ) 54
2.5.4 編寫YAML資源配置文件對(duì)應(yīng)
K/V存儲(chǔ) 55
2.5.5 編寫MyConfig.java文件對(duì)應(yīng)
相關(guān)K/V存儲(chǔ) 56
2.5.6 調(diào)用MyConfig.java中的參數(shù) 57
2.5.7 在啟動(dòng)類引用相關(guān)配置 57
2.5.8 當(dāng)前項(xiàng)目結(jié)構(gòu) 58
2.5.9 運(yùn)行結(jié)果 58
2.5.10 實(shí)例易錯(cuò)點(diǎn) 60
2.6 本章小結(jié) 60
2.7 習(xí)題 60
第3章 分布式的通信 61
3.1 分布式通信 61
3.1.1 Spring Cloud Feign 61
3.1.2 Swagger 61
3.2 【實(shí)例】微服務(wù)集成Swagger 62
3.2.1 實(shí)例背景 62
3.2.2 編寫Swagger依賴 62
3.2.3 編寫Swagger配置 63
3.2.4 編寫接口與接口處的Swagger
配置 64
3.2.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 66
3.2.6 運(yùn)行效果 66
3.2.7 實(shí)例易錯(cuò)點(diǎn) 70
3.3 【實(shí)例】Feign調(diào)用微服務(wù)接口 72
3.3.1 實(shí)例背景 72
3.3.2 引入相關(guān)配置信息 73
3.3.3 編寫Feign客戶端 73
3.3.4 編寫調(diào)用 75
3.3.5 編寫啟動(dòng)類 76
3.3.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 76
3.3.7 運(yùn)行結(jié)果 77
3.3.8 實(shí)例易錯(cuò)點(diǎn) 77
3.4 【實(shí)例】Feign的攔截器 78
3.4.1 實(shí)例背景 78
3.4.2 在cloud-admin-8084工程中增加
攔截器 78
3.4.3 當(dāng)前項(xiàng)目結(jié)構(gòu) 79
3.4.4 運(yùn)行結(jié)果 79
3.4.5 實(shí)例易錯(cuò)點(diǎn) 80
3.5 Feign的配置 81
3.5.1 傳輸數(shù)據(jù)壓縮配置 81
3.5.2 日志配置 82
3.5.3 超時(shí)配置 83
3.6 【實(shí)例】Feign的降級(jí)回退處理
——Feign的Fallback類 84
3.6.1 實(shí)例背景 84
3.6.2 在資源配置文件中開啟Feign內(nèi)置
的Hystrix權(quán)限 84
3.6.3 編寫Fallback降級(jí)類 84
3.6.4 Service整合Fallback降級(jí)類 84
3.6.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 85
3.6.6 運(yùn)行結(jié)果 85
3.7 【實(shí)例】Feign的降級(jí)回退處理
——Feign的Fallback工廠 86
3.7.1 實(shí)例背景 86
3.7.2 編寫Fallback降級(jí)工廠 86
3.7.3 整合Fallback降級(jí)工廠 87
3.7.4 實(shí)例易錯(cuò)點(diǎn) 87
3.8 本章小結(jié) 88
3.9 習(xí)題 88
第4章 分布式的客戶端負(fù)載均衡 89
4.1 負(fù)載均衡 89
4.1.1 傳統(tǒng)服務(wù)器端負(fù)載均衡 89
4.1.2 Ribbon客戶端負(fù)載均衡 89
4.2 【實(shí)例】Feign整合Ribbon分發(fā)
請(qǐng)求 90
4.2.1 實(shí)例背景 90
4.2.2 編寫cloud-book-8086啟動(dòng)類與
配置類支持Ribbon 91
4.2.3 Service和Controller 92
4.2.4 當(dāng)前項(xiàng)目結(jié)構(gòu) 94
4.2.5 運(yùn)行效果 95
4.2.6 實(shí)例易錯(cuò)點(diǎn) 96
4.3 Ribbon的負(fù)載均衡策略配置 97
4.4 本章小結(jié) 98
4.5 習(xí)題 98
第5章 分布式的斷路器 99
5.1 斷路器 99
5.1.1 為什么需要斷路器 99
5.1.2 Hystrix 99
5.1.3 Hystrix解決的問題 100
5.1.4 Hystrix如何解決問題 100
5.2 【實(shí)例】Hystrix斷路器的降級(jí)
回退 101
5.2.1 實(shí)例背景 101
5.2.2 編寫相關(guān)Pom文件 101
5.2.3 編寫application資源配置文件 101
5.2.4 編寫Ribbon配置類 102
5.2.5 編寫啟動(dòng)類 102
5.2.6 編寫Service類 103
5.2.7 編寫Controller類 103
5.2.8 當(dāng)前項(xiàng)目結(jié)構(gòu) 104
5.2.9 運(yùn)行結(jié)果 105
5.2.10 實(shí)例易錯(cuò)點(diǎn) 106
5.3 Hystrix線程池 108
5.3.1 Hystrix斷路器注解式的命令
配置 109
5.3.2 Hystrix斷路器的注解式線程池
配置 111
5.3.3 Hystrix斷路器注解式的整體
定制配置 112
5.3.4 Hystrix斷路器資源配置式的
整體定制配置 113
5.4 【實(shí)例】Hystrix斷路器的請(qǐng)求
緩存 114
5.4.1 實(shí)例背景 114
5.4.2 通過Filter初始化Hystrix
上下文 114
5.4.3 讓啟動(dòng)類掃描Filter過濾器 116
5.4.4 編寫Controller的Helper類 116
5.4.5 編寫Controller類 118
5.4.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 118
5.4.7 運(yùn)行結(jié)果 119
5.4.8 銷毀Hystrix的請(qǐng)求緩存 121
5.4.9 實(shí)例易錯(cuò)點(diǎn) 121
5.5 【實(shí)例】Hystrix的請(qǐng)求合并 123
5.5.1 實(shí)例背景 123
5.5.2 增加@HystrixCollapser請(qǐng)求合并
修飾的函數(shù) 124
5.5.3 Controller中調(diào)用請(qǐng)求合并函數(shù) 126
5.5.4 當(dāng)前項(xiàng)目結(jié)構(gòu) 126
5.5.5 運(yùn)行結(jié)果 127
5.5.6 實(shí)例易錯(cuò)點(diǎn) 128
5.6 【實(shí)例】Hystrix的可視化監(jiān)控 129
5.6.1 實(shí)例背景 129
5.6.2 Hystrix可視化監(jiān)控的依賴 129
5.6.3 Hystrix可視化監(jiān)控的啟動(dòng)類 129
5.6.4 被監(jiān)控的微服務(wù)增加響應(yīng)地址 130
5.6.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 131
5.6.6 運(yùn)行結(jié)果 132
5.6.7 實(shí)例易錯(cuò)點(diǎn) 134
5.7 本章小結(jié) 135
5.8 習(xí)題 135
第6章 微服務(wù)的異步線程池 136
6.1 異步線程池 136
6.1.1 異步線程池特點(diǎn) 136
6.1.2 常見的線程池 136
6.2 【實(shí)例】創(chuàng)建無(wú)返回值異步線
程池 137
6.2.1 實(shí)例背景 137
6.2.2 編寫Pom文件 137
6.2.3 編寫Spring Boot啟動(dòng)類 138
6.2.4 編寫異步線程池任務(wù)接口與
實(shí)現(xiàn) 138
6.2.5 編寫外部可調(diào)用接口 139
6.2.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 140
6.2.7 運(yùn)行程序查看異步線程池效果 140
6.2.8 實(shí)例易錯(cuò)點(diǎn) 141
6.3 【實(shí)例】創(chuàng)建有返回值異步
線程池 141
6.3.1 實(shí)例背景 141
6.3.2 增加新的服務(wù)接口 141
6.3.3 增加新的服務(wù)實(shí)現(xiàn) 141
6.3.4 增加新的調(diào)用 142
6.3.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 142
6.3.6 運(yùn)行程序查看異步線程池效果 142
6.3.7 實(shí)例易錯(cuò)點(diǎn) 143
6.4 【實(shí)例】?jī)?yōu)化異步線程池 143
6.4.1 實(shí)例背景 143
6.4.2 創(chuàng)建初始化線程池配置類 143
6.4.3 更改無(wú)返回值的異步線程池
Service實(shí)現(xiàn)類 145
6.4.4 運(yùn)行程序查看異步線程池效果 145
6.4.5 實(shí)例易錯(cuò)點(diǎn) 146
6.5 【實(shí)例】?jī)?yōu)雅停止異步線程池 146
6.5.1 實(shí)例背景 146
6.5.2 何為“優(yōu)雅” 146
6.5.3 修改原Config配置類 147
6.5.4 修改原Controller控制層 148
6.5.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 149
6.5.6 優(yōu)雅停止異步線程池的執(zhí)行
效果 150
6.5.7 實(shí)例易錯(cuò)點(diǎn) 152
6.6 @Enable*注解 152
6.7 本章小結(jié) 152
6.8 習(xí)題 153
第7章 微服務(wù)整合持久化數(shù)據(jù)源 154
7.1 spring-data 154
7.1.1 ORM規(guī)范 154
7.1.2 JPA、Hibernate、spring-data-jpa
之間的關(guān)系 155
7.1.3 安裝MySQL 155
7.2 【實(shí)例】Spring Boot整合MyBaits
注解式編程 156
7.2.1 實(shí)例背景 156
7.2.2 添加Pom文件 156
7.2.3 編寫application資源配置文件 157
7.2.4 編寫dao層 157
7.2.5 編寫訪問接口 159
7.2.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 160
7.2.7 運(yùn)行效果 160
7.2.8 實(shí)例易錯(cuò)點(diǎn) 160
7.3 @Mapper注解詳解 162
7.3.1 @Mapper和XML形式的對(duì)應(yīng)
關(guān)系 162
7.3.2 MyBatis的注解式編程多表
查詢 162
7.3.3 MyBatis的注解式編程分頁(yè)
查詢 163
7.3.4 注冊(cè)DataSource數(shù)據(jù)源 165
7.4 【實(shí)例】Spring Boot整合
spring-data-jpa 166
7.4.1 實(shí)例背景 166
7.4.2 添加Pom文件 166
7.4.3 添加資源配置文件中的相關(guān)
信息 166
7.4.4 添加實(shí)體類映射 167
7.4.5 添加JPA的dao層 168
7.4.6 添加Controller控制層查詢JPA的
dao層 169
7.4.7 當(dāng)前項(xiàng)目結(jié)構(gòu) 170
7.4.8 運(yùn)行結(jié)果 170
7.4.9 實(shí)例易錯(cuò)點(diǎn) 170
7.5 本章小結(jié) 171
7.6 習(xí)題 171
第8章 微服務(wù)事務(wù) 172
8.1 @Transactional注解 172
8.1.1 @Transactional聲明式事務(wù)的
傳播行為 173
8.1.2 臟讀、不可重復(fù)讀與幻讀 173
8.1.3 @Transactional聲明式事務(wù)的
隔離級(jí)別 174
8.1.4 @Transactional聲明式事務(wù)的
超時(shí)時(shí)間 175
8.1.5 @Transactional聲明式事務(wù)的
只讀 175
8.1.6 @Transactional聲明式事務(wù)指定
異常 176
8.2 【實(shí)例】Spring Boot整合聲明式
事務(wù) 176
8.2.1 實(shí)例背景 176
8.2.2 整合@Transactional的Service層
編寫 177
8.2.3 整合@Transactional的Controller層
編寫 178
8.2.4 當(dāng)前項(xiàng)目結(jié)構(gòu) 179
8.2.5 運(yùn)行結(jié)果 179
8.2.6 實(shí)例易錯(cuò)點(diǎn) 180
8.3 本章小結(jié) 181
8.4 習(xí)題 181
第9章 微服務(wù)的緩存與分布式的消息
通信 182
9.1 Redis 182
9.1.1 BSD協(xié)議 182
9.1.2 Java與Redis的歷史 183
9.1.3 Spring Data Redis 183
9.2 【實(shí)例】微服務(wù)整合Spring Data
Redis增刪改查 184
9.2.1 實(shí)例背景 184
9.2.2 編寫application.properties資源
配置文件 184
9.2.3 配置RedisTemplate模板 185
9.2.4 編寫操作Redis的工具類 186
9.2.5 編寫實(shí)體類及接口調(diào)用 188
9.2.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 189
9.2.7 運(yùn)行結(jié)果 189
9.2.8 實(shí)例易錯(cuò)點(diǎn) 190
9.3 【實(shí)例】分布式使用Redis實(shí)現(xiàn)
消息通信 190
9.3.1 消息通信應(yīng)用場(chǎng)景 190
9.3.2 Redis與MQ一系列消息隊(duì)列的
區(qū)別 191
9.3.3 實(shí)例背景 191
9.3.4 在send微服務(wù)中配置模板 192
9.3.5 在send微服務(wù)中定時(shí)向隊(duì)列
發(fā)布數(shù)據(jù) 192
9.3.6 在listener微服務(wù)中編寫訂閱渠道
的配置信息 193
9.3.7 在listener微服務(wù)中編寫監(jiān)聽
實(shí)現(xiàn)類 195
9.3.8 當(dāng)前項(xiàng)目結(jié)構(gòu) 195
9.3.9 send微服務(wù)與listener微服務(wù)運(yùn)行
結(jié)果 196
9.3.10 實(shí)例易錯(cuò)點(diǎn) 196
9.4 Spring Cache與Spring Data Redis
的區(qū)別 196
9.5 【實(shí)例】保持MySQL與Redis
數(shù)據(jù)一致性 197
9.5.1 實(shí)例背景 197
9.5.2 編寫資源配置文件 198
9.5.3 編寫實(shí)體類Java Bean 198
9.5.4 編寫JPA倉(cāng)庫(kù) 199
9.5.5 編寫Service接口及實(shí)現(xiàn)類 199
9.5.6 編寫Controller接口進(jìn)行測(cè)試 202
9.5.7 當(dāng)前項(xiàng)目結(jié)構(gòu) 202
9.5.8 運(yùn)行結(jié)果 202
9.5.9 實(shí)例易錯(cuò)點(diǎn) 203
9.6 本章小結(jié) 204
9.7 習(xí)題 204
第10章 微服務(wù)的任務(wù)調(diào)度與分布式的
任務(wù)調(diào)度 205
10.1 【實(shí)例】微服務(wù)整合任務(wù)調(diào)度 205
10.1.1 實(shí)例背景 205
10.1.2 編寫任務(wù)調(diào)度實(shí)現(xiàn)類 205
10.1.3 編寫資源配置文件 206
10.1.4 當(dāng)前項(xiàng)目結(jié)構(gòu) 206
10.1.5 運(yùn)行效果 206
10.1.6 實(shí)例易錯(cuò)點(diǎn) 206
10.2 @Scheduled注解詳解 207
10.2.1 cron表達(dá)式 207
10.2.2 每個(gè)字段允許值 207
10.2.3 cron特殊字符意義 208
10.2.4 常用cron表達(dá)式 208
10.3 任務(wù)調(diào)度的分布式 209
10.3.1 任務(wù)調(diào)度的分布式解決方案 209
10.3.2 任務(wù)調(diào)度的分布式實(shí)現(xiàn)原理 210
10.4 【實(shí)例】微服務(wù)整合任務(wù)調(diào)度
分布式 210
10.4.1 實(shí)例背景 210
10.4.2 增加Quartz依賴 210
10.4.3 在數(shù)據(jù)庫(kù)中增加Quartz分布式
的管理表 210
10.4.4 編寫資源配置文件 211
10.4.5 創(chuàng)建任務(wù)調(diào)度管理Java Bean 212
10.4.6 創(chuàng)建所需執(zhí)行的任務(wù) 213
10.4.7 創(chuàng)建執(zhí)行任務(wù)的操作類 213
10.4.8 增加控制層 216
10.4.9 當(dāng)前項(xiàng)目結(jié)構(gòu) 218
10.4.10 運(yùn)行效果 218
10.4.11 實(shí)例易錯(cuò)點(diǎn) 219
10.5 本章小結(jié) 220
10.6 習(xí)題 220
第11章 微服務(wù)的文件上傳與分布式
文件管理 221
11.1 文件上傳/下載原理 221
11.1.1 SpringMVC文件上傳原理 223
11.1.2 文件下載原理 225
11.2 【實(shí)例】微服務(wù)的單文件和
多文件上傳 226
11.2.1 實(shí)例背景 226
11.2.2 編寫application.properties資
源配置文件 227
11.2.3 編寫相關(guān)接口 228
11.2.4 編寫前臺(tái)頁(yè)面 230
11.2.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 231
11.2.6 運(yùn)行結(jié)果 232
11.2.7 實(shí)例易錯(cuò)點(diǎn) 233
11.3 分布式文件管理 235
11.3.1 分布式文件管理特性 235
11.3.2 分布式文件管理解決的問題 235
11.3.3 分布式文件管理解決方案 235
11.4 FastDFS解決方案 235
11.4.1 FastDFS的存儲(chǔ)策略 236
11.4.2 FastDFS的文件上傳過程 236
11.4.3 FastDFS的文件同步過程 236
11.4.4 FastDFS的文件下載過程 237
11.5 FastDFS的安裝部署 237
11.5.1 安裝LibFastCommon 237
11.5.2 安裝FastDFS 237
11.5.3 配置FastDFS的跟蹤服務(wù)器 238
11.5.4 配置FastDFS的數(shù)據(jù)存儲(chǔ)
服務(wù)器 239
11.5.5 配置FastDFS的客戶端
并測(cè)試 240
11.5.6 安裝Nginx部署FastDFS 240
11.6 【實(shí)例】分布式微服務(wù)整合
FastDFS 243
11.6.1 實(shí)例背景 243
11.6.2 編寫FastDFS核心配置類 244
11.6.3 編寫FastDFS工具類 244
11.6.4 編寫測(cè)試接口 245
11.6.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 246
11.6.6 運(yùn)行結(jié)果 246
11.6.7 實(shí)例易錯(cuò)點(diǎn) 247
11.7 本章小結(jié) 248
11.8 習(xí)題 248
第12章 擴(kuò)展與部署 249
12.1 微服務(wù)分布式架構(gòu)相關(guān)方案
總結(jié) 249
12.1.1 解決方案與目標(biāo) 249
12.1.2 分布式部分技術(shù)細(xì)節(jié)擴(kuò)展 250
12.1.3 動(dòng)靜分離 250
12.1.4 前后端分離 250
12.1.5 數(shù)據(jù)庫(kù)讀寫分離與主從分離 251
12.1.6 應(yīng)用層與數(shù)據(jù)層分離 251
12.1.7 CDN加速 251
12.1.8 異步架構(gòu) 251
12.1.9 響應(yīng)式編程 251
12.1.10 冗余化管理 252
12.1.11 灰度發(fā)布 252
12.1.12 頁(yè)面靜態(tài)化 252
12.1.13 服務(wù)端主動(dòng)推送 253
12.2 微服務(wù)擴(kuò)展 253
12.2.1 微服務(wù)整合日志 253
12.2.2 微服務(wù)整合單元測(cè)試 253
12.2.3 微服務(wù)整合全局異常 253
12.2.4 微服務(wù)整合JSR-303驗(yàn)證機(jī)制 254
12.2.5 微服務(wù)整合國(guó)際化 254
12.2.6 微服務(wù)整合安全與認(rèn)證 254
12.2.7 微服務(wù)整合WebSocket協(xié)議 254
12.2.8 微服務(wù)整合HTTPS 255
12.2.9 微服務(wù)整合批處理 255
12.2.10 微服務(wù)整合lombok 255
12.2.11 微服務(wù)整合異步消息驅(qū)動(dòng) 255
12.2.12 分布式鏈路監(jiān)控 255
12.2.13 分布式單點(diǎn)登錄 256
12.3 【實(shí)例】分布式網(wǎng)關(guān)的初步
測(cè)試 256
12.3.1 實(shí)例背景 256
12.3.2 使用資源配置文件的方式配置
分布式網(wǎng)關(guān) 256
12.3.3 使用注冊(cè)Bean的方式配置
分布式網(wǎng)關(guān) 257
12.3.4 運(yùn)行結(jié)果 258
12.4 微服務(wù)打包 258
12.4.1 Jar包 258
12.4.2 War包 259
12.5 本章小結(jié) 259
12.6 習(xí)題 259
參考文獻(xiàn) 260