微服務(wù)分布式架構(gòu)基礎(chǔ)與實(shí)戰(zhàn)——基于Spring Boot + Spring Cloud
定 價(jià):59 元
當(dāng)前圖書(shū)已被 29 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:張方興
- 出版時(shí)間:2020/3/1
- ISBN:9787121384134
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP368.5
- 頁(yè)碼:272
- 紙張:膠版紙
- 版次:01
- 開(kāi)本:16K
微服務(wù)分布式架構(gòu)的內(nèi)容更新迭代速度極快,2018年6月開(kāi)始就有許多微服務(wù)分布式的數(shù)據(jù),但是到2019年已經(jīng)跟不上Spring Cloud的版本了,過(guò)去大多數(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ù)書(shū)籍的網(wǎng)關(guān)依舊使用的Spring Cloud Zuul,但是目前Spring 已經(jīng)逐漸廢棄Spring Cloud Zuul,而是讓Spring Cloud Gateway接替他的網(wǎng)關(guān)位置。市面上的同類(lèi)書(shū)的技術(shù)將沒(méi)有將此內(nèi)容更新。另外本書(shū)從分布式架構(gòu)程序的方式角度進(jìn)行講解,包括分布式任務(wù)調(diào)度、分布式事務(wù)管理,重點(diǎn)提及了這部分的實(shí)戰(zhàn)與思想。很多書(shū)只是用來(lái)教導(dǎo)框架構(gòu)架,而本書(shū)則希望通過(guò)框架讓讀者認(rèn)識(shí)分布式的具體操作方法。本書(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 編寫(xiě)Pom文件 10
1.3.7 Spring Boot依賴(lài)包的導(dǎo)入 12
1.3.8 編寫(xiě)Spring Boot啟動(dòng)類(lèi) 14
1.3.9 編寫(xiě)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)類(lèi)掃描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文件的書(shū)寫(xiě)格式 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í)例】通過(guò)單配置文件讓工程
適應(yīng)多應(yīng)用場(chǎng)景 27
1.8.1 實(shí)例背景 27
1.8.2 更改application.yml文件 27
1.8.3 更改啟動(dòng)類(lèi) 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í)例】通過(guò)多配置文件使工程
適應(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 編寫(xiě)啟動(dòng)類(lèi) 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 資源配置信息類(lèi)型的權(quán)重 32
1.10.2 資源配置文件類(lèi)型的權(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ù)工程編寫(xiě)相應(yīng)依賴(lài)
文件 45
2.3.4 Spring Cloud和Spring Boot的
版本對(duì)應(yīng)關(guān)系 46
2.3.5 編寫(xiě)微服務(wù)YAML資源配置文件 46
2.3.6 編寫(xiě)微服務(wù)啟動(dòng)類(lèi)注冊(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í)例】通過(guò)代碼獲取Consul中的
服務(wù)信息 51
2.4.1 實(shí)例背景 51
2.4 2 編寫(xiě)獲得其他注冊(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 添加依賴(lài) 54
2.5.3 利用Consul的UI界面添加K/V
存儲(chǔ) 54
2.5.4 編寫(xiě)YAML資源配置文件對(duì)應(yīng)
K/V存儲(chǔ) 55
2.5.5 編寫(xiě)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)類(lèi)引用相關(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 編寫(xiě)Swagger依賴(lài) 62
3.2.3 編寫(xiě)Swagger配置 63
3.2.4 編寫(xiě)接口與接口處的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 編寫(xiě)Feign客戶(hù)端 73
3.3.4 編寫(xiě)調(diào)用 75
3.3.5 編寫(xiě)啟動(dòng)類(lèi) 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類(lèi) 84
3.6.1 實(shí)例背景 84
3.6.2 在資源配置文件中開(kāi)啟Feign內(nèi)置
的Hystrix權(quán)限 84
3.6.3 編寫(xiě)Fallback降級(jí)類(lèi) 84
3.6.4 Service整合Fallback降級(jí)類(lèi) 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工廠(chǎng) 86
3.7.1 實(shí)例背景 86
3.7.2 編寫(xiě)Fallback降級(jí)工廠(chǎng) 86
3.7.3 整合Fallback降級(jí)工廠(chǎng) 87
3.7.4 實(shí)例易錯(cuò)點(diǎn) 87
3.8 本章小結(jié) 88
3.9 習(xí)題 88
第4章 分布式的客戶(hù)端負(fù)載均衡 89
4.1 負(fù)載均衡 89
4.1.1 傳統(tǒng)服務(wù)器端負(fù)載均衡 89
4.1.2 Ribbon客戶(hù)端負(fù)載均衡 89
4.2 【實(shí)例】Feign整合Ribbon分發(fā)
請(qǐng)求 90
4.2.1 實(shí)例背景 90
4.2.2 編寫(xiě)cloud-book-8086啟動(dòng)類(lèi)與
配置類(lèi)支持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解決的問(wèn)題 100
5.1.4 Hystrix如何解決問(wèn)題 100
5.2 【實(shí)例】Hystrix斷路器的降級(jí)
回退 101
5.2.1 實(shí)例背景 101
5.2.2 編寫(xiě)相關(guān)Pom文件 101
5.2.3 編寫(xiě)application資源配置文件 101
5.2.4 編寫(xiě)Ribbon配置類(lèi) 102
5.2.5 編寫(xiě)啟動(dòng)類(lèi) 102
5.2.6 編寫(xiě)Service類(lèi) 103
5.2.7 編寫(xiě)Controller類(lèi) 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線(xiàn)程池 108
5.3.1 Hystrix斷路器注解式的命令
配置 109
5.3.2 Hystrix斷路器的注解式線(xiàn)程池
配置 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 通過(guò)Filter初始化Hystrix
上下文 114
5.4.3 讓啟動(dòng)類(lèi)掃描Filter過(guò)濾器 116
5.4.4 編寫(xiě)Controller的Helper類(lèi) 116
5.4.5 編寫(xiě)Controller類(lèi) 118
5.4.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 118
5.4.7 運(yùn)行結(jié)果 119
5.4.8 銷(xiāo)毀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)控的依賴(lài) 129
5.6.3 Hystrix可視化監(jiān)控的啟動(dòng)類(lèi) 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ù)的異步線(xiàn)程池 136
6.1 異步線(xiàn)程池 136
6.1.1 異步線(xiàn)程池特點(diǎn) 136
6.1.2 常見(jiàn)的線(xiàn)程池 136
6.2 【實(shí)例】創(chuàng)建無(wú)返回值異步線(xiàn)
程池 137
6.2.1 實(shí)例背景 137
6.2.2 編寫(xiě)Pom文件 137
6.2.3 編寫(xiě)Spring Boot啟動(dòng)類(lèi) 138
6.2.4 編寫(xiě)異步線(xiàn)程池任務(wù)接口與
實(shí)現(xiàn) 138
6.2.5 編寫(xiě)外部可調(diào)用接口 139
6.2.6 當(dāng)前項(xiàng)目結(jié)構(gòu) 140
6.2.7 運(yùn)行程序查看異步線(xiàn)程池效果 140
6.2.8 實(shí)例易錯(cuò)點(diǎn) 141
6.3 【實(shí)例】創(chuàng)建有返回值異步
線(xiàn)程池 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)行程序查看異步線(xiàn)程池效果 142
6.3.7 實(shí)例易錯(cuò)點(diǎn) 143
6.4 【實(shí)例】?jī)?yōu)化異步線(xiàn)程池 143
6.4.1 實(shí)例背景 143
6.4.2 創(chuàng)建初始化線(xiàn)程池配置類(lèi) 143
6.4.3 更改無(wú)返回值的異步線(xiàn)程池
Service實(shí)現(xiàn)類(lèi) 145
6.4.4 運(yùn)行程序查看異步線(xiàn)程池效果 145
6.4.5 實(shí)例易錯(cuò)點(diǎn) 146
6.5 【實(shí)例】?jī)?yōu)雅停止異步線(xiàn)程池 146
6.5.1 實(shí)例背景 146
6.5.2 何為“優(yōu)雅” 146
6.5.3 修改原Config配置類(lèi) 147
6.5.4 修改原Controller控制層 148
6.5.5 當(dāng)前項(xiàng)目結(jié)構(gòu) 149
6.5.6 優(yōu)雅停止異步線(xiàn)程池的執(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 編寫(xiě)application資源配置文件 157
7.2.4 編寫(xiě)dao層 157
7.2.5 編寫(xiě)訪(fǎng)問(wèn)接口 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的注解式編程多表
查詢(xún) 162
7.3.3 MyBatis的注解式編程分頁(yè)
查詢(xún) 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í)體類(lèi)映射 167
7.4.5 添加JPA的dao層 168
7.4.6 添加Controller控制層查詢(xún)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層
編寫(xiě) 177
8.2.3 整合@Transactional的Controller層
編寫(xiě) 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 編寫(xiě)application.properties資源
配置文件 184
9.2.3 配置RedisTemplate模板 185
9.2.4 編寫(xiě)操作Redis的工具類(lèi) 186
9.2.5 編寫(xiě)實(shí)體類(lèi)及接口調(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ù)中編寫(xiě)訂閱渠道
的配置信息 193
9.3.7 在listener微服務(wù)中編寫(xiě)監(jiān)聽(tīng)
實(shí)現(xiàn)類(lèi) 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 編寫(xiě)資源配置文件 198
9.5.3 編寫(xiě)實(shí)體類(lèi)Java Bean 198
9.5.4 編寫(xiě)JPA倉(cāng)庫(kù) 199
9.5.5 編寫(xiě)Service接口及實(shí)現(xiàn)類(lèi) 199
9.5.6 編寫(xiě)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 編寫(xiě)任務(wù)調(diào)度實(shí)現(xiàn)類(lèi) 205
10.1.3 編寫(xiě)資源配置文件 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依賴(lài) 210
10.4.3 在數(shù)據(jù)庫(kù)中增加Quartz分布式
的管理表 210
10.4.4 編寫(xiě)資源配置文件 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ù)的操作類(lèi) 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 編寫(xiě)application.properties資
源配置文件 227
11.2.3 編寫(xiě)相關(guān)接口 228
11.2.4 編寫(xiě)前臺(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 分布式文件管理解決的問(wèn)題 235
11.3.3 分布式文件管理解決方案 235
11.4 FastDFS解決方案 235
11.4.1 FastDFS的存儲(chǔ)策略 236
11.4.2 FastDFS的文件上傳過(guò)程 236
11.4.3 FastDFS的文件同步過(guò)程 236
11.4.4 FastDFS的文件下載過(guò)程 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的客戶(hù)端
并測(cè)試 240
11.5.6 安裝Nginx部署FastDFS 240
11.6 【實(shí)例】分布式微服務(wù)整合
FastDFS 243
11.6.1 實(shí)例背景 243
11.6.2 編寫(xiě)FastDFS核心配置類(lèi) 244
11.6.3 編寫(xiě)FastDFS工具類(lèi) 244
11.6.4 編寫(xiě)測(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ù)讀寫(xiě)分離與主從分離 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