Spring Cloud實戰演練
內容描述
本書是Spring Cloud的入門書。首先,簡要概述了微服務並分析了當前因特網架構趨勢。其次,系統地介紹了Spring Boot的相關知識,從基礎用法到核心組件。再次,從具體的案例出發,依次講解了Spring Cloud最常用的組件,將理論與實踐相結合,使讀者在學習Spring Cloud的過程中還能瞭解一個產品從無到有的全過程。最後,結合目前最流行的容器技術,介紹了Kubernetes如何配合Docker進行系統的分佈式部署。
本書適合具有一定Java基礎和Spring MVC基礎的人群以及希望往架構師方向發展的開發者閱讀。
目錄大綱
第一部分基礎篇
第1章微服務概述\t2
1.1應用架構概述\t2
1.1.1單體架構\t2
1.1.2微服務架構\t3
1.1.3如何選擇架構風格\t4
1.2微服務現狀及發展趨勢\t4
1.2.1微服務現狀\t4
1.2.2微服務發展趨勢\t5
1.3微服務架構面臨的挑戰\t5
1.4怎樣實現微服務架構\t6
1.4.1技術選型\t6
1.4.2整體架構思路\t7
1.5小結\t7
第2章Spring Boot基礎\t9
2.1 Spring Boot簡介\t9
2.2第一個Spring Boot工程\t9
2.3使用YAML文件配置屬性\t12
2.3.1 YAML的基本用法\t12
2.3.2多環境配置\t13
2.4常用註解\t14
2.4.1 @SpringBootApplication\t15
2.4.2 @SpringBootConfiguration\t15
2.4.3 @Bean\t16
2.4.4 @Value\t18
2.5 Spring Boot集成模板引擎\t19
2.6更改默認的JSON轉換器\t21
2.7打包發佈到服務器上\t22
2.7.1使用內置Tomcat發布jar包\t22
2.7.2打包成war包發布\t24
2.8 WebFlux快速入門\t27
2.9小結\t29
第3章Spring Boot核心原理\t31
3.1起步依賴機制\t31
3.2自動配置管理\t32
3.3 Actuator監控管理\t34
3.4 Spring Boot CLI命令行工具\t36
3.4.1安裝\t36
3.4.2用法\t37
3.5小結\t38
第4章Spring Cloud概述\t40
4.1簡介\t40
4.2優缺點\t41
4.3現狀\t41
4.4開始Spring Cloud實戰\t42
4.4.1技術儲備\t42
4.4.2準備工作\t42
4.4.3從Hello World開始你的實戰
之旅\t43
4.5小結\t52
第二部分實戰篇
第5章項目準備階段\t54
5.1項目介紹\t54
5.2需求分析\t54
5.3產品設計\t55
5.4架構方案分析\t58
5.4.1技術選型\t58
5.4.2架構圖設計\t58
5.4.3根據架構圖創建工程\t59
5.5數據庫結構設計\t62
5.6小結\t63
第6章公共模塊封裝\t65
6.1 common工程常用類庫的封裝\t65
6.1.1日期時間的處理\t65
6.1.2字符串的處理\t68
6.1.3加密/解密封裝\t69
6.1.4消息隊列的封裝\t74
6.2接口版本管理\t78
6.3輸入參數的合法性校驗\t80
6.4異常的統一處理\t82
6.5更換JSON轉換器\t83
6.6 Redis的封裝\t84
6.7小結\t85
第7章註冊中心: Spring Cloud
Netflix Eureka\t87
7.1 Eureka簡介\t87
7.2創建註冊中心\t87
7.3創建客戶端工程以驗證註冊中心\t91
7.4實現註冊中心的高可用\t92
7.5添加用戶認證\t96
7.6開啟自我保護模式\t99
7.7註冊中心的健康檢查\t100
7.8多網卡環境下的IP選擇問題\t101
7.9小結\t103
第8章配置中心:Spring Cloud
Config\t105
8.1 Spring Cloud Config簡介\t105
8.2創建配置中心\t105
8.3對配置內容進行加密\t111
8.3.1安裝JCE\t111
8.3.2對稱加密\t112
8.3.3對配置內容加密\t114
8.3.4非對稱加密\t114
8.4配置自動刷新\ t118
8.4.1使用refresh端點刷新配置\t118
8.4.2 Spring Cloud Bus自動刷新配置\t119
8.5添加用戶認證\t122
8.6小結\t123
第9章服務網關:Spring Cloud
Gateway\t125
9.1 Gateway簡介\t125
9.2創建服務網關\t125
9.3利用過濾器攔截API請求\t128
9.4請求失敗處理\t130
9.5小結\t133
第10章功能開發\t135
10.1開發前的準備\t135
10.1.1 MyBatis的集成\t135
10.1.2 Elasticsearch的集成\t137
10.2利用代碼生成器提升開發效率\t140
10.3使用代碼生成器生成的代碼操作
數據庫\t147
10.4 MyBatis應對複雜SQL\t149
10.4.1註解\t149
10.4.2 Provider\t150
10.5功能開發\t151
10.6網關鑑權\t154
10.6.1防止參數被篡改\t155
10.6.2攔截非法請求\t157
10.7單元測試\t159
10.8小結\t160
第三部分高級篇
第11章服務間通信:Spring Cloud
Netflix Ribbon和Spring
Cloud OpenFeign\t162
11.1 Spring Cloud Netflix Ribbon的使用\t162
11.2 Spring Cloud OpenFeign\t164
11.3自定義OpenFeign配置\t166
11.4 Spring Cloud OpenFeign熔斷\t167
11.4.1 Spring Cloud Netflix Hystrix
簡介\t167
11.4.2 Spring Cloud Netflix Hystrix
的使用\t168
11.4.3 OpenFeign集成Hystrix
熔斷器\t172
11.5小結\t173
第12章服務鏈路追踪:Spring
Cloud Sleuth\t175
12.1 Spring Cloud Sleuth簡介\t175
12.2利用鏈路追踪監聽網絡請求\t176
12.2.1服務端的實現\t176
12.2.2客戶端集成Spring Cloud
Sleuth\t179
12.3通過消息中間件實現鏈路追踪\ t180
12.4存儲追踪數據\t182
12.5小結\t184
第13章服務治理:Spring Cloud
Consul和Spring Cloud
ZooKeeper\t186
13.1服務治理簡介\t186
13.2 Spring Cloud Consul的使用\t186
13.2.1 Consul的安裝與部署\t187
13.2.2 Spring Cloud集成Consul\t189
13.3 Spring Cloud ZooKeeper的使用\t190
13.3.1 ZooKeeper的安裝和部署\t191
13.3.2 Spring Cloud集成ZooKeeper\t191
13.4小結\t193
第四部分部署篇
第14章系統發布上線\t195
14.1發布前準備\t195
14.1.1虛擬機的安裝\t195
14.1.2 Linux常用命令\t198
14.1.3安裝常用軟件\t198
14.2編譯、打包、發布\t207
14.3利用Jenkins實現持續集成\t210
14.3.1安裝並配置Jenkins\t210
14.3.2創建任務\t215
14.3.3構建項目\t220
14.4小結\t221
第15章使用Kubernetes部署分佈式
集群\t223
15.1 Docker介紹\t223
15.1.1 Docker安裝\t223
15.1.2 Docker鏡像\t224
15.1. 3 Docker容器\t228
15.2 K8S集群環境搭建\t229
15.2.1環境準備\t229
15.2.2集群搭建\t230
15.2.3分佈式應用部署\t232
15.3小結\t237
附錄A如何編寫優雅的Java代碼\t239
附錄B IDEA插件之Alibaba Cloud
Toolkit\t258
作者介紹
李熠,全棧工程師,畢業於成都電子科技大學計算機科學與技術專業,擁有7年互聯網軟件開發、技術架構和管理等方面的經驗,對Spring Boot、Spring Cloud、微服務、持續集成有一定見地。曾任映潮科技系統架構師、鏈一科技CTO,現就職於中國石油規劃總院。
熱愛技術,喜歡鑽研,特別喜歡挑戰技術難題,CSDN博客(https://blog.csdn.net /lynnlovemin)專家、GitChat專欄作者,並在GitHub上開源了多個項目(詳見https://github .com/lynnlovemin)。技術全面,對Vue.js、React.js等比較熟悉,擅長Java、JavaScript、Linux服務器,可獨立實現一套涵蓋前後端的系統。