Spring Cloud實戰演練

Spring Cloud實戰演練

作者: 李熠
出版社: 人民郵電
出版在: 2019-09-01
ISBN-13: 9787115519986
ISBN-10: 7115519986





內容描述


本書是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服務器,可獨立實現一套涵蓋前後端的系統。




相關書籍

Dependency Injection in .NET Core 2.0: Make use of constructors, parameters, setters, and interface injection to write reusable and loosely-coupled code

作者 Marino Posadas Tadit Dash

2019-09-01

Java Program Design: Principles, Polymorphism, and Patterns

作者 Edward Sciore

2019-09-01

Java Coding Guidelines: 75 Recommendations for Reliable and Secure Programs (Paperback)

作者 Fred Long Dhruv Mohindra Robert C. Seacord Dean F. Sutherland David Svoboda

2019-09-01