Spring Cloud 與 Docker 高並發微服務架構設計實施 Spring Cloud与Docker高并发微服务架构设计实施

陳韶健

買這商品的人也買了...

商品描述

本書從架構設計、應用開發和運維部署三個方面出發,對微服務架構設計的實施進行了全方位的闡述和深入實踐,並結合生產實際講解了Spring Cloud、Docker和Jenkins等工具的具體使用方法。書中通過一個因特網電商平臺實例實現了高並發的微服務架構設計,並通過詳細的開發和實施過程,演示了構建一個安全可靠、穩定高效並可持續擴展的系統平臺的方法。本書適合因特網應用開發設計人員參考學習。

作者簡介

陳韶健,資深IT技術專家,著有《深入實踐Spring Boot》(2016年10月機械工業出版社)、《Neo4j全棧開發》(2017年6月電子工業出版社)等書籍,在虛擬化技術領域、數據庫使用和大數據分析、分佈式架構設計、Spring等開源框架使用、微服務實施和開發等領域都有深入的研究和豐富的實踐經驗。未來研究方向:物聯網、智慧城市、AI人工智能等。

目錄大綱

第一部分架構篇
1微服務架構與Spring Cloud 2 
1.1微服務概念的由來2 
1.2微服務的定義3 
1.3微服務架構與整體式架構的區別5 
1.4微服務架構與SOA的比較8 
1.5為什麼要使用微服務架構9 
1.6為實施微服務架構做好準備10 
1.6.1思想觀念的轉變10 
1.6.2團隊管理方式的改變11 
1.6.3自動化基礎設施的建設11 
1.7為什麼要使用Spring Cloud 12 
1.8 Spring Cloud組件介紹13 
1.9 Spring Cloud的版本說明15 
1.10小結17 
2微服務架構最佳設計18 
2.1合理劃分微服務19 
2.2微服務治理19 
2.3 Rest API微服務設計21 
2.3.1使用數據庫集群22 
2.3.2讀寫分離設計22 
2.3.3使用緩存22 
2.3.4保證Rest API微服務的獨立性23 
2.4 Web UI微服務設計23 
2.4.1使用FeignClient實現負載均衡調用23 
2.4.2使用Hystrix實現容錯設計23
2.4.3使用非阻塞的異步編程技術實現高並發調用24 
2.4.4使用分佈式文件系統24 
2.5微服務之間調用規則設計24 
2.6數據最終一致性設計25 
2.7分佈式集群架構設計26 
2.8微服務運行環境安全設計27 
2.9小結27 
3電商平台微服務設計實例29 
3.1電商平台總體設計29 
3.1.1總體業務流程設計29 
3.1.2總體業務功能設計31 
3.2電商平台業務模型設計32 
3.2. 1移動商城業務模型32 
3.2.2商家管理後台業務模型33 
3.2.3平台管理後台業務模型33 
3.3創建Rest API微服務34 
3.4創建Web UI微服務36 
3.4.1移動商城Web UI微服務36 
3.4. 2商家管理後台的Web UI微服務37 
3.4.3平台管理後台Web UI微服務37 
3.5電商平台微服務體系結構38 
3.6小結39 
第二部分開發篇
4開發工具選用及Spring Boot基礎41 
4.1開發工具選擇42 
4.2開發環境配置42 
4.3創建Spring Boot工程43 
4.4使用JPA 47
4.4.1數據源配置48 
4.4.2 JPA配置48 
4.4.3數據實體設計49 
4.4.4存儲庫接口設計49 
4.4.5單元測試50 
4.5使用Thymeleaf 51 
4.5.1控制器設計51 
4.5.2視圖設計52 
4.6運行與部署52 
4.7小結53 
5電商平台微服務工程設計54 
5.1微服務工程結構54 
5.2電商平台微服務工程組建56 
5.3數據庫選型56 
5.4微服務工程創建步驟57 
5.5項目基本配置59 
5.6創建模塊63 
5.7小結65 
6微服務治理基礎服務開發66 
6.1註冊管理中心67 
6.1.1創建註冊管理中心67 
6.1.2運行註冊管理中心69 
6.1.3微服務怎樣使用註冊管理中心69 
6.1.4構建高可用的註冊管理中心71 
6.2配置管理中心72 
6.2.1創建配置管理中心72 
6.2.2微服務如何使用配置管理中心75 
6.2.3在線更新配置信息76 
6.3微服務監控中心77 
6.3.1使用斷路器儀錶盤實現監控78
6.3.2聚合服務監控管理中心80 
6.4服務跟踪分析中心85 
6.4.1創建服務跟踪分析中心85 
6.4.2在微服務中啟用服務跟踪功能89 
6.5日誌分析平台92 
6.5.1創建日誌分析平台92 
6.5 .2使用日誌分析平台92 
6.6小結93 
7 Rest API微服務開發95 
7.1領域業務開發95 
7.1.1使用Druid數據源97 
7.1.2 JPA及其配置99 
7.1.3數據實體建模100 
7.1.4查詢對象設計103 
7.1.5實體持久化設計105 
7.1.6持久化測試106 
7.1.7領域服務開發108 
7.1.8領域服務的單元測試110 
7.1.9使用Redis實現緩存設計111 
7.2 Rest API應用開發116 
7.2 .1 Rest API應用配置116 
7.2.2啟動程序設計118 
7.2.3接口開發118 
7.3使用消息處理事件122 
7.3.1消息生產者設計123 
7.3.2消息消費者設計124 
7.3.3使用消息測試127 
7.4小結128
8 Web UI微服務開發130 
8.1高並發接口調用分層設計130 
8.2通過FeignClient調用Rest API 131 
8.3使用Hystrix斷路器133 
8.4使用非阻塞異步編程方法135 
8.4.1 CompletableFuture介紹136 
8.4.2性能比較測試139 
8.5 Web應用開發144 
8.5.1項目引用配置144 
8.5.2應用程序配置145 
8.5.3業務功能開發147 
8.6開發環境的熱部署設置153 
8.7使用分佈式文件系統156 
8.7.1分佈式文件系統客戶端開發156 
8.7.2商品圖片上傳設計158 
8.7.3富文本編輯器上傳文件設計159 
8.7.4建立本地文件信息庫162 
8.8小結165 
9電商平台移動商城開發166 
9.1移動商城首頁設計167 
9.2使用負載均衡的導航設計173 
9.3按分類查詢設計175 
9.4商品詳情頁設計178 
9.5購買下單實現180 
9.6用戶登錄與賬戶切換設計183 
9.6.1用戶登錄設計183 
9.6.2切換賬號設計185
9.7訂單查詢設計187 
9.8集成測試190 
9.9小結191 
10商家管理後台與SSO設計192 
10.1商家權限管理體系設計及開發193 
10.1.1商家權限體系建模194 
10.1.2商家權限體系的持久化設計198 
10.1 .3商家權限體系的領域服務開發200 
10.2商家管理微服務開發203 
10.2.1商家領域服務層單元測試203 
10.2.2商家服務的接口開發207 
10.3 SSO設計212 
10.3.1 SSO基本配置212 
10.3.2在SSO中使用商家的權限體系213 
10.3.3用戶登錄設計215 
10.3.4有關驗證碼的說明217 
10.3.5 SSO的主頁設計219 
10.3.6 OAuth2服務端設計221 
10.4 SSO客戶端設計223 
10.4.1客戶端的項目管理配置223 
10.4.2客戶端的安全管理配置224 
10.4.3權限驗證實現原理225 
10.4.4如何在應用中接入SSO 227 
10.4.5有關跨站請求偽造防禦的相關設置229 
10.4.6根據用戶權限自動分配菜單229 
10.5小結231
11平台管理後台開發232 
11.1平台管理後台領域設計232 
11.1.1領域實體建模232 
11.1.2實體的行為設計235 
11.1.3領域服務開發235 
11.1.4領域服務單元測試238 
11.2平台管理後台訪問控制設計239 
11.2.1使用平台管理的用戶體系239 
11.2.2權限管理設計241 
11.3商家的註冊設計244 
11.4商家菜單體繫管理開發247 
11.4.1分類菜單管理開發247 
11.4.2模塊菜單管理開發248 
11.4. 3訪問資源管理開發251 
11.5商家角色管理開發254 
11.6小結256 
第三部分運維篇
12服務器架構設計與Docker使用258 
12.1服務器組建258 
12.2安全的服務器架構設計259 
12.2.1防火牆安裝及配置259 
12.2. 2建立安全的局域網環境263 
12.3服務器資源分配265 
12.4 CentOS安裝268 
12.4.1 IP地址設置269 
12.4.2安全設置269 
12.4.3語言配置269 
12.4.4時間同步配置270
12.5 Docker和docker-compose安裝270 
12.5.1 Docker安裝及使用271 
12.5.2 docker-compose安裝及使用274 
12.6使用Docker搭建微服務治理環境278 
12.6.1服務器1的部署配置278 
12.6.2服務器2的部署配置280 
12.7使用Docker部署日誌分析平台282 
12.8使用Docker部署微服務應用285 
12.9小結285 
13數據庫集群設計與高可用讀寫分離實施287 
13.1 MySQL安裝288 
13.2主從同步設置290 
13.3主主同步設置293 
13.4數據庫代理中間件選擇295 
13.5使用OneProx