內容簡介
本書是一本Spring Cloud開發的入門級教程圖書,也是一本著重於動手實戰的編程指導書。隨著這兩年Spring Cloud開發的日漸火熱,無論是對於編程工作者、編程講師或是編程愛好者與學生,掌握SpringCloud 開發技能都將為自己帶來極大的收穫。本書分15個章節對Spring Cloud的各種組件進行全面講解,並針對某個組件的替代產品進行針對性的比較。有Spring Cloud的註冊中心Eureka,Consul;網關組件Zuul和Gateway;異步訊息佇列Kafka,配置中心config等。本書章節簡明扼要,務求用簡潔的文字和代碼將整個Spring Cloud技術體系進行講解說明,讀者在閱讀的過程中也能收穫匪淺。
作者簡介
徐文聰目前在一線網際網路公司擔任後端開發,承擔百萬日活的產品後端研發。對高並發和性能最佳化方面有不少經驗,對技術有極致的追求Github和Gitee活躍用戶。
圖書目錄
目 錄
第1章 Spring Cloud微服務簡介 001
1.1 單體套用架構 001
1.1.1 單體套用架構簡介 001
1.1.2 單體套用架構的優勢 001
1.1.3 單體套用架構的劣勢 002
1.2 微服務架構 002
1.2.1 微服務架構簡介 002
1.2.2 微服務的來源 002
1.2.3 微服務的優點 002
1.2.4 微服務的缺點 003
1.2.5 微服務架構的選擇 003
1.3 Spring Cloud介紹 004
1.3.1 Spring Cloud的概念 004
1.3.2 Spring Cloud的組件 005
1.3.3 Spring Cloud版本介紹 005
1.3.4 Spring Boot簡介 005
1.3.5 Spring Boot和Spring Cloud的關係 006
1.4 本章小結 006
第2章 微服務開發工具 007
2.1 IDEA基本配置 007
2.1.1 IDEA的安裝 007
2.1.2 字型設定 007
2.1.3 自動編譯開源 009
2.1.4 代碼提示設定 009
2.1.5 Tab多行顯示 009
2.1.6 去掉行尾空格 011
2.1.7 設定行號顯示 011
2.1.8 項目檔案編碼 012
2.1.9 自動導入包 013
2.2 IDEA快捷鍵 013
2.2.1 快捷鍵函式收尾 014
2.2.2 去掉無效引用 014
2.2.3 打開近使用的檔案 015
2.2.4 快速搜尋檔案 015
2.2.5 快速查找方法 016
2.2.6 快速搜尋目錄 016
2.2.7 快速切換編輯框 016
2.2.8 查看層級關係 017
2.2.9 展開成員變數 017
2.2.10 方法參數類型提示 018
2.2.11 查看方法調用 018
2.2.12 同詞編輯 019
2.3 代碼相關技巧 020
2.3.1 打開近的項目 020
2.3.2 本地代碼歷史 021
2.3.3 展示類成員變數 022
2.3.4 記憶體展示 023
2.3.5 查看項目結構 024
2.3.6 多執行緒斷點調試 025
2.3.7 同步顯示類 026
2.4 IDEA代碼模板配置 027
2.4.1 代碼模板定製 027
2.4.2 注釋生成 027
2.4.3 生成Java類模板 028
2.5 IDEA外掛程式介紹 031
2.5.1 阿里巴巴規範外掛程式 031
2.5.2 stackoverflow搜尋外掛程式 031
2.5.3 Maven Helper 032
2.5.4 POJO to JSON外掛程式 033
2.5.5 GsonFormat外掛程式 034
2.5.6 Grep Console日誌查詢工具 036
2.5.7 Redis可視化工具 037
2.5.8 代碼高亮工具 038
2.5.9 翻譯外掛程式 039
2.5.10 字元串標記JSON 040
2.6 本章小結 041
第3章 註冊中心 042
3.1 Eureka客戶端 042
3.1.1 Eureka客戶端依賴 042
3.1.2 Eureka客戶端檔案配置 043
3.2 Eureka服務端 044
3.2.1 Eureka服務端組件依賴 044
3.2.2 Eureka服務端檔案配置 045
3.2.3 Eureka服務端啟動類 046
3.2.4 註冊中心啟動 046
3.3 Eureka常用配置 047
3.3.1 Eureka許可權認證 047
3.3.2 Eureka健康檢查 047
3.4 Consul註冊中心 048
3.4.1 Consul安裝和啟動 048
3.4.2 Consul服務端依賴 050
3.4.3 Consul服務端檔案配置 050
3.4.4 Consul服務端啟動類 051
3.4.5 Consul客戶端檔案配置 051
3.4.6 Consul客戶端業務邏輯 052
3.5 本章小結 054
第4章 Feign客戶端 055
4.1 Feign實例 055
4.1.1 Feign項目結構 055
4.1.2 Feign客戶端依賴 055
4.1.3 Feign客戶端檔案配置 057
4.1.4 Feign客戶端啟動類配置 058
4.1.5 Feign的配置方式 058
4.1.6 Spring兩種類型的bean對象 058
4.1.7 Feign客戶端接口定義 059
4.1.8 Feign服務端依賴 059
4.1.9 Feign服務端檔案配置 060
4.1.10 Feign服務端啟動類 061
4.1.11 Feign服務端控制器 061
4.1.12 Feign項目啟動 062
4.2 Feign請求 062
4.2.1 Feign get請求 062
4.2.2 Feign post請求 063
4.2.3 Feign服務降級 064
4.3 Feign高級配置 064
4.3.1 Feign安全認證配置 064
4.3.2 Feign逾時配置 065
4.3.3 Feign日誌配置 065
4.3.4 Feign核心類 066
4.4 Feign整合Zipkin 066
4.4.1 項目結構 066
4.4.2 Zipkin服務端依賴 067
4.4.3 Zipkin客戶端依賴 069
4.4.4 Zipkin客戶端配置檔案 069
4.5 Hystrix註冊中心 070
4.5.1 Hystrix原理 071
4.5.2 Hystrix項目結構 071
4.5.3 Hystrix註冊中心依賴 071
4.5.4 Hystrix檔案配置 072
4.5.5 Hystrix相關參數配置 072
4.5.6 Hystrix隔離策略 072
4.5.7 Eureka啟動 073
4.6 構建Hystrix服務端 073
4.6.1 Hystrix服務端組件依賴 073
4.6.2 Hystrix檔案配置 073
4.6.3 Hystrix啟動類 074
4.6.4 Eureka配置檔案 074
4.7 構建Hystrix客戶端 075
4.7.1 Hystrix客戶端依賴 075
4.7.2 Hystrix客戶端啟動配置 075
4.7.3 Hystrix增加控制類 076
4.7.4 Hystrix回退支持 077
4.8 本章小結 078
第5章 Ribbon負載均衡器 080
5.1 Ribbon註冊中心 080
5.1.1 Eureka實例 080
5.1.2 Ribbon服務端實例 082
5.1.3 Ribbon客戶端實例 084
5.1.4 Ribbon負載均衡 086
5.2 Ribbon常用配置 087
5.2.1 Ribbon註冊中心狀態設定 087
5.2.2 Ribbon註冊中心逾時設定 087
5.2.3 Ribbon路由配置 088
5.3 本章小結 090
第6章 Config配置中心 091
6.1 Config服務端 091
6.2 Config客戶端 093
6.2.1 Config客戶端依賴 093
6.2.2 Config客戶端檔案配置 095
6.2.3 動態配置刷新 096
6.3 本章小結 097
第7章 第三方配置中心 098
7.1 Apollo簡介 098
7.1.1 Apollo的結構 098
7.1.2 Apollo配置環境 100
7.1.3 Apollo資料庫配置 103
7.1.4 Apollo配置中心啟動 107
7.2 Apollo配置中心 112
7.2.1 Apollo創建配置 112
7.2.2 Apollo新增配置 112
7.2.3 Apollo發布配置 113
7.2.4 Apollo啟動 114
7.3 Apollo集群 115
7.3.1 集群配置 115
7.3.2 管理員工具 116
7.3.3 Apollo實例 124
7.4 Nacos配置中心 125
7.4.1 Nacos的安裝 125
7.4.2 項目結構 127
7.4.3 Nacos服務端依賴 127
7.4.4 Nacos服務端 128
7.4.5 Nacos配置管理 131
7.5 ZooKeeper配置中心 132
7.5.1 ZooKeeper簡介 132
7.5.2 使用場景 132
7.5.3 節點監控 133
7.5.4 ZooKeeper領導者選舉 133
7.5.5 Watcher機制 134
7.5.6 ZooKeeper部署 135
7.5.7 zkui登錄頁面 137
7.5.8 ZooKeeper實例 139
7.6 本章小結 142
第8章 Zuul網關 143
8.1 Zuul基礎實例 143
8.1.1 Zuul的作用 143
8.1.2 Zuul依賴 144
8.1.3 Zuul檔案配置 144
8.1.4 啟動類配置 144
8.2 Zuul實例 145
8.2.1 創建Eureka註冊中心 145
8.2.2 Eureka客戶端依賴 146
8.2.3 Eureka客戶端檔案配置 146
8.3 Zuul高級特性 148
8.3.1 路由前綴 148
8.3.2 本地跳轉 149
8.3.3 過濾器實現種類 149
8.3.4 入口規則配置 154
8.3.5 Zuul過濾器生命周期 155
8.3.6 Zuul過濾器禁用 156
8.3.7 Zuul過濾器的數據傳遞 156
8.3.8 服務降級處理 158
8.3.9 全局限流配置 158
8.3.10 局部限流配置 158
8.4 本章小結 159
第9章 Gateway網關 160
9.1 Gateway簡介 160
9.1.1 Gateway的組成 160
9.1.2 Gateway實例 161
9.1.3 Gateway轉發規則 162
9.2 本章小結 165
第10章 Admin管理中心 166
10.1 Admin實例 166
10.1.1 Admin服務端 166
10.1.2 Admin客戶端 167
10.1.3 創建Eureka項目 170
10.1.4 查看服務日誌 171
10.2 Admin高級特性 171
10.2.1 集成Hystrix UI展示 171
10.2.2 Admin安全配置 172
10.2.3 攔截監控端點處理 175
10.2.4 Session監控 175
10.2.5 展示客戶端JMX信息 176
10.2.6 監控客戶端配置 176
10.2.7 服務端集成Hystrix UI展示 177
10.2.8 監控告警服務 177
10.3 本章小結 178
第11章 文檔管理工具 179
11.1 Swagger實例構建 179
11.1.1 Swagger回響 179
11.1.2 Springfox-Swagger簡介 180
11.1.3 Swagger相關依賴 180
11.1.4 Swagger檔案配置 180
11.1.5 Swagger啟動 181
11.2 Swagger註解 182
11.2.1 @Api接口註解 182
11.2.2 @ApiIgnore隱藏接口 183
11.2.3 @ApiOperation方法註解 183
11.2.4 @ApiImplicitParam參數註解 184
11.2.5 @ApiResponse和@ApiResponses回響註解 185
11.2.6 @ApiModel參數註解 185
11.2.7 @ApiModelProperty欄位註解 186
11.3 Swagger實例 186
11.3.1 項目結構 186
11.3.2 項目配置檔案 187
11.3.3 許可權模組 187
11.3.4 用戶模組 189
11.3.5 訂單模組 191
11.3.6 支付模組 192
11.3.7 商城模組 193
11.3.8 啟動套用 194
11.3.9 請求認證 195
11.4 Postman使用方式 195
11.4.1 Postman基本使用方法 195
11.4.2 Postman主頁 196
11.4.3 創建新的接口 196
11.4.4 接口集合 198
11.5 本章小結 202
第12章 MongoDB資料庫 203
12.1 MongoDB簡介 203
12.1.1 MongoDB的結構 203
12.1.2 MongoDB的特點 204
12.1.3 套用場景 204
12.1.4 可視化客戶端 205
12.1.5 下載和安裝 206
12.2 MongoDB實例 208
12.2.1 MongoDB依賴 208
12.2.2 MongoDB創建資料庫 209
12.2.3 創建實體 213
12.2.4 用戶方法 221
12.2.5 訂單方法 222
12.2.6 支付方