Spring Cloud微服務架構實戰

Spring Cloud微服務架構實戰

《Spring Cloud微服務架構實戰》是2020年3月電子工業出版社出版的圖書,作者是陳韶健。

基本介紹

  • 書名:Spring Cloud微服務架構實戰
  • 作者:陳韶健
  • ISBN:9787121382864 
  • 頁數:328
  • 定價:¥99.0
  • 出版社:電子工業出版社
  • 出版時間:2020年3月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書以Spring Cloud為主導,以電商平台為實例,從服務架構設計的角度,對架構承芝鍵設計、程式開發、運維部署三個層面進行了詳細的闡述。本書不僅詳細介紹了如何使用Spring Cloud工具套件進行微服務套用的開發,還介紹了如何結合Consul、Docker、Kubernets和Jenkins等的使用方法,將開發的微服遷影刪務套用以一種可擴展的方式在雲端發布。通過對本書的系統學習,讀者可快速舉照龍巴將所掌握的知識套用於實際工作中,提高自身的職業競爭力。本書的讀者對象為廣大的Java開發者、系統架構師和系統運維人員。本書特別適合使用過Spring開源框架或具有一定Spring框架基礎知識的讀者閱讀。

圖書目錄

第一部分 架構
第1章 微服務架構與Spring Cloud 2
1.1 微服務架構的特點 2
1.2 微服務架構與整體式架構的區別 4
1.3 微服務架構與SOA的比較 7
1.4 微服務架構的優勢 8
1.5 為實施微服務架構做好準備 9
1.5.1 思想灑墓觀念 9
1.5.2 團隊管理 10
1.5.3 自婚民獄動化基礎設施 10
1.6 Spring Cloud的優勢 11
1.7 Spring Cloud工具套件介紹 12
1.8 Spring Cloud的版本說明 15
1.9 小結 15
第2章 高並發微服務架構設計 16
2.1 微服務總體架構設計 16
2.2 自然的壓力分解 18
2.3 可彈性伸縮的集群環境 18
2.4 高度的獨立性設計 19
2.5 API的分層調用關係 19
2.6 高可用的基礎資源支持 20
2.7 快速回響的自動化基礎設施 21
2.8 完善的監控體婚員棄系 21
2.9 微服務的安全保障 21
2.10 小結 22
第3章 大型電商平台設計實例 23
3.1 電商平台總體設計 23
3.1.1 總體業務流程設計 23
3.1.2 總體業務功能設計 25
3.2 電商平台業務模型設計 25
3.2.1 移動商城業務模型 26
3.2.2 商家管理後台業務模型 26
3.2.3 平台管理後台業務模型 27
3.3 合理劃分微服跨腿鑽循務 28
3.4 創建REST API微服務 29
3.5 創建Web UI微服務 30
3.5.1 移動商城Web UI微服務 30
3.5.2 商家管理後台的Web UI微服務 31
3.5.3 平台管理後台Web UI微服務 31
3.6 電商平台微服務體系架構 32
3.7 電商平台微服務項目工程 33
3.8 微服務項目資料庫選型 33
3.9 電商平台微服務項目代碼庫 34
3.10 小結 34
第二部分 開發
第4章 開發環境準備 36
4.1 選擇Java SDK的版本 36
4.2 下載InterlliJ IDEA 37
4.3 下載及配置Git客戶端 37
4.4 創建Spring Cloud項目 38
4.5 小結 39
第5章 微服務治理 40
5.1 使用Consul創建註冊中心 41
5.1.1 服務註冊與發現 42
5.1.2 統一配置管理 44
5.2 合理髮揮斷路器的作用 46
5.3 如何實現有效的監控 47
5.3.1 服務健康狀態監控 47
5.3.2 重大故障告警 49
5.3.3 斷路器儀錶盤 49
5.4 Zipkin鏈路跟蹤 52
5.5 ELK日誌分析平台 55
5.5.1 創建日誌分析平台 55
5.5.2 使用日誌分析平台 56
5.6 小結 57
第6章 類目管理微服務開發 58
6.1 了解領域驅動設計 58
6.1.1 DDD的分層結構 59
6.1.2 DDD的基本元素 59
6.2 Spring Data JPA 59
6.2.1 Druid數據源配置 60
6.2.2 JPA初始化和基本配置 62
6.3 實體建模 63
6.4 查詢對象設計 65
6.5 數據持久化設計 66
6.6 數據管理服務設計 68
6.7 單元測試 70
6.8 類目接口微服務開發 71
6.8.1 RESTful接口開發 71
6.8.2 微服務接口調試 73
6.9 基於RESTful的微服務接口調用 74
6.9.1 聲明式FeignClient設計 74
6.9.2 斷路器的使用 76
6.10 類目管理Web套用微服務開發 76
6.10.1 接口調用引用相關配置 77
6.10.2 Spring MVC控制器設計 77
6.11 使用Thymeleaf模板 78
6.11.1 HTML頁面設計 79
6.11.2 統一風格模板設計 80
6.12 總體測試 82
6.13 有關項目打包與部署 83
6.14 小結 84
第7章 庫存管理與分散式檔案系統 85
7.1 基於MyBatis的資料庫開發 85
7.1.1 使用經過組裝的MyBatis組件 85
7.1.2 數據對象及其表結構定義 86
7.1.3 Mapper與SQL定製 88
7.2 資料庫服務組裝 89
7.3 單元測試 91
7.4 庫存微服務接口開發 92
7.4.1 在主程式中支持MyBatis 92
7.4.2 基於REST協定的控制器設計 93
7.5 庫存管理的Web套用開發 94
7.5.1 公共對象的依賴引用 95
7.5.2 商品分頁數據調用設計 95
7.6 Web套用項目熱部署設定 97
7.7 使用分散式檔案系統DFS 99
7.7.1 分散式檔案系統客戶端開發 99
7.7.2 商品圖片上傳設計 102
7.7.3 富文本編輯器上傳圖片設計 106
7.7.4 建立本地檔案信息庫 108
7.8 總體測試 112
7.9 小結 114
第8章 海量訂單系統微服務開發 115
8.1 使用MongoDB支持海量數據 115
8.1.1 使用Mongo外掛程式 115
8.1.2 MongoDB數據源相關配置 116
8.2 訂單文檔建模 117
8.2.1 訂單及其明細數據 117
8.2.2 訂單狀態枚舉 119
8.3 反應式MongoDB編程設計 121
8.3.1 基於Spring Data的存儲庫接口設計 121
8.3.2 動態分頁查詢設計 121
8.4 Mongo單元測試 123
8.5 訂單接口微服務開發 125
8.6 訂單的分散式事務管理 127
8.6.1 訂單取消的訊息生成 127
8.6.2 訂單取消的庫存變化處理 129
8.7 訂單管理後台微服務開發 131
8.7.1 訂單查詢主頁設計 131
8.7.2 訂單狀態修改設計 133
8.8 集成測試 135
8.9 小結 137
第9章 移動商城的設計和開發 138
9.1 移動商城首頁設計 139
9.2 商城的分類查詢設計 143
9.3 商品詳情頁設計 145
9.4 用戶下單功能實現 147
9.5 商城的用戶登錄與賬戶切換設計 152
9.5.1 用戶登錄設計 152
9.5.2 切換賬號設計 155
9.6 訂單查詢設計 156
9.7 集成測試 160
9.8 小結 162
第10章 商家管理後台與SSO設計 163
10.1 商家許可權體系的設計及開發 164
10.1.1 許可權管理模型設計 165
10.1.2 許可權管理模型的持久化設計 170
10.1.3 許可權管理模型的服務封裝 171
10.2 商家管理微服務設計 175
10.2.1 商家管理服務層單元測試 175
10.2.2 商家服務的接口開發 178
10.3 SSO設計 183
10.3.1 SSO的基本配置 183
10.3.2 SSO第三方套用授權設計 184
10.3.3 SSO登錄認證設計 186
10.3.4 有關驗證碼的說明 191
10.3.5 SSO的主頁設計 193
10.4 SSO客戶端設計 196
10.4.1 安全認證的項目管理配置 196
10.4.2 安全認證項目的配置類 196
10.4.3 許可權管理驗證設計 198
10.4.4 客戶端套用接入SSO 201
10.4.5 有關跨站請求的相關設定 203
10.4.6 根據用戶許可權自動分配選單 203
10.5 小結 206
第11章 平台管理後台與商家選單資源管理 207
11.1 平台管理後台訪問控制設計 207
11.1.1 實體建模 207
11.1.2 為實體賦予行為 210
11.1.3 數據訪問服務設計 210
11.1.4 單元測試 213
11.2 平台管理後台的訪問控制設計 214
11.2.1 在訪問控制中使用操作員 215
11.2.2 平台管理後台的許可權管理設計 215
11.3 商家的註冊管理設計 219
11.4 商家許可權及其選單資源管理設計 222
11.4.1 分類選單管理設計 222
11.4.2 模組選單管理設計 224
11.4.3 資源選單管理設計 228
11.5 商家角色管理設計 232
11.6 小結 236
第三部分 運維
第12章 雲服務環境與Docker部署工具 238
12.1 虛擬機與基於Docker創建的容器 238
12.2 安全可靠的雲服務環境 239
12.3 Docker和docker-compose的下載與配置 240
12.3.1 Docker引擎的安裝及使用 240
12.3.2 docker-compose的下載及配置 241
12.4 使用Docker方式發布微服務 242
12.4.1 鏡像創建及其生成腳本 242
12.4.2 服務發布與更新 243
12.5 使用Docker部署日誌分析平台 243
12.6 基於Docker的高級部署工具 246
12.6.1 私域鏡像倉庫 246
12.6.2 Docker Swarm 247
12.6.3 Kubernetes 249
12.7 小結 253
第13章 可擴展分散式資料庫集群的搭建 254
13.1 MySQL集群主機分配 255
13.2 主從同步設定 256
13.3 主主同步設定 259
13.4 資料庫代理中間件選擇 261
13.5 使用OneProxy實現讀寫分離設計 261
13.5.1 安裝OneProxy 262
13.5.2 高可用讀寫分離配置 263
13.6 OneProxy分庫分區設計 267
13.6.1 按範圍分庫分表 268
13.6.2 按值列表分庫分表 268
13.6.3 按散列算法分庫分表 269
13.7 雙機熱備設計 271
13.7.1 Real Server配置 272
13.7.2 LVS主機配置 273
13.7.3 LVS備用機配置 275
13.8 小結 277
第14章 高可用分散式檔案系統的組建 278
14.1 FastDFS架構 278
14.2 FastDFS的安裝 279
14.3 跟蹤伺服器配置 280
14.4 存儲節點配置 281
14.5 上傳檔案測試 282
14.6 Nginx的安裝及負載均衡配置 283
14.6.1 在跟蹤器上安裝Nginx 283
14.6.2 在存儲節點上安裝Nginx 285
14.7 開機啟動 287
14.7.1 開機啟動Tracker 287
14.7.2 開機啟動Storage 289
14.7.3 開機啟動Nginx 291
14.8 小結 293
第15章 使用Jenkins實現自動化構建 294
15.1 持續交付工作流程 295
15.2 Jenkins的安裝 296
15.3 Jenkins的基本配置 298
15.4 Jenkins的自動部署實例 300
15.4.1 創建任務 300
15.4.2 任務配置 301
15.4.3 執行任務 305
15.5 小結 309
後記 310
參考文獻 311,第一部分 架構
第1章 微服務架構與Spring Cloud 2
1.1 微服務架構的特點 2
1.2 微服務架構與整體式架構的區別 4
1.3 微服務架構與SOA的比較 7
1.4 微服務架構的優勢 8
1.5 為實施微服務架構做好準備 9
1.5.1 思想觀念 9
1.5.2 團隊管理 10
1.5.3 自動化基礎設施 10
1.6 Spring Cloud的優勢 11
1.7 Spring Cloud工具套件介紹 12
1.8 Spring Cloud的版本說明 15
1.9 小結 15
第2章 高並發微服務架構設計 16
2.1 微服務總體架構設計 16
2.2 自然的壓力分解 18
2.3 可彈性伸縮的集群環境 18
2.4 高度的獨立性設計 19
2.5 API的分層調用關係 19
2.6 高可用的基礎資源支持 20
2.7 快速回響的自動化基礎設施 21
2.8 完善的監控體系 21
2.9 微服務的安全保障 21
2.10 小結 22
第3章 大型電商平台設計實例 23
3.1 電商平台總體設計 23
3.1.1 總體業務流程設計 23
3.1.2 總體業務功能設計 25
3.2 電商平台業務模型設計 25
3.2.1 移動商城業務模型 26
3.2.2 商家管理後台業務模型 26
3.2.3 平台管理後台業務模型 27
3.3 合理劃分微服務 28
3.4 創建REST API微服務 29
3.5 創建Web UI微服務 30
3.5.1 移動商城Web UI微服務 30
3.5.2 商家管理後台的Web UI微服務 31
3.5.3 平台管理後台Web UI微服務 31
3.6 電商平台微服務體系架構 32
3.7 電商平台微服務項目工程 33
3.8 微服務項目資料庫選型 33
3.9 電商平台微服務項目代碼庫 34
3.10 小結 34
第二部分 開發
第4章 開發環境準備 36
4.1 選擇Java SDK的版本 36
4.2 下載InterlliJ IDEA 37
4.3 下載及配置Git客戶端 37
4.4 創建Spring Cloud項目 38
4.5 小結 39
第5章 微服務治理 40
5.1 使用Consul創建註冊中心 41
5.1.1 服務註冊與發現 42
5.1.2 統一配置管理 44
5.2 合理髮揮斷路器的作用 46
5.3 如何實現有效的監控 47
5.3.1 服務健康狀態監控 47
5.3.2 重大故障告警 49
5.3.3 斷路器儀錶盤 49
5.4 Zipkin鏈路跟蹤 52
5.5 ELK日誌分析平台 55
5.5.1 創建日誌分析平台 55
5.5.2 使用日誌分析平台 56
5.6 小結 57
第6章 類目管理微服務開發 58
6.1 了解領域驅動設計 58
6.1.1 DDD的分層結構 59
6.1.2 DDD的基本元素 59
6.2 Spring Data JPA 59
6.2.1 Druid數據源配置 60
6.2.2 JPA初始化和基本配置 62
6.3 實體建模 63
6.4 查詢對象設計 65
6.5 數據持久化設計 66
6.6 數據管理服務設計 68
6.7 單元測試 70
6.8 類目接口微服務開發 71
6.8.1 RESTful接口開發 71
6.8.2 微服務接口調試 73
6.9 基於RESTful的微服務接口調用 74
6.9.1 聲明式FeignClient設計 74
6.9.2 斷路器的使用 76
6.10 類目管理Web套用微服務開發 76
6.10.1 接口調用引用相關配置 77
6.10.2 Spring MVC控制器設計 77
6.11 使用Thymeleaf模板 78
6.11.1 HTML頁面設計 79
6.11.2 統一風格模板設計 80
6.12 總體測試 82
6.13 有關項目打包與部署 83
6.14 小結 84
第7章 庫存管理與分散式檔案系統 85
7.1 基於MyBatis的資料庫開發 85
7.1.1 使用經過組裝的MyBatis組件 85
7.1.2 數據對象及其表結構定義 86
7.1.3 Mapper與SQL定製 88
7.2 資料庫服務組裝 89
7.3 單元測試 91
7.4 庫存微服務接口開發 92
7.4.1 在主程式中支持MyBatis 92
7.4.2 基於REST協定的控制器設計 93
7.5 庫存管理的Web套用開發 94
7.5.1 公共對象的依賴引用 95
7.5.2 商品分頁數據調用設計 95
7.6 Web套用項目熱部署設定 97
7.7 使用分散式檔案系統DFS 99
7.7.1 分散式檔案系統客戶端開發 99
7.7.2 商品圖片上傳設計 102
7.7.3 富文本編輯器上傳圖片設計 106
7.7.4 建立本地檔案信息庫 108
7.8 總體測試 112
7.9 小結 114
第8章 海量訂單系統微服務開發 115
8.1 使用MongoDB支持海量數據 115
8.1.1 使用Mongo外掛程式 115
8.1.2 MongoDB數據源相關配置 116
8.2 訂單文檔建模 117
8.2.1 訂單及其明細數據 117
8.2.2 訂單狀態枚舉 119
8.3 反應式MongoDB編程設計 121
8.3.1 基於Spring Data的存儲庫接口設計 121
8.3.2 動態分頁查詢設計 121
8.4 Mongo單元測試 123
8.5 訂單接口微服務開發 125
8.6 訂單的分散式事務管理 127
8.6.1 訂單取消的訊息生成 127
8.6.2 訂單取消的庫存變化處理 129
8.7 訂單管理後台微服務開發 131
8.7.1 訂單查詢主頁設計 131
8.7.2 訂單狀態修改設計 133
8.8 集成測試 135
8.9 小結 137
第9章 移動商城的設計和開發 138
9.1 移動商城首頁設計 139
9.2 商城的分類查詢設計 143
9.3 商品詳情頁設計 145
9.4 用戶下單功能實現 147
9.5 商城的用戶登錄與賬戶切換設計 152
9.5.1 用戶登錄設計 152
9.5.2 切換賬號設計 155
9.6 訂單查詢設計 156
9.7 集成測試 160
9.8 小結 162
第10章 商家管理後台與SSO設計 163
10.1 商家許可權體系的設計及開發 164
10.1.1 許可權管理模型設計 165
10.1.2 許可權管理模型的持久化設計 170
10.1.3 許可權管理模型的服務封裝 171
10.2 商家管理微服務設計 175
10.2.1 商家管理服務層單元測試 175
10.2.2 商家服務的接口開發 178
10.3 SSO設計 183
10.3.1 SSO的基本配置 183
10.3.2 SSO第三方套用授權設計 184
10.3.3 SSO登錄認證設計 186
10.3.4 有關驗證碼的說明 191
10.3.5 SSO的主頁設計 193
10.4 SSO客戶端設計 196
10.4.1 安全認證的項目管理配置 196
10.4.2 安全認證項目的配置類 196
10.4.3 許可權管理驗證設計 198
10.4.4 客戶端套用接入SSO 201
10.4.5 有關跨站請求的相關設定 203
10.4.6 根據用戶許可權自動分配選單 203
10.5 小結 206
第11章 平台管理後台與商家選單資源管理 207
11.1 平台管理後台訪問控制設計 207
11.1.1 實體建模 207
11.1.2 為實體賦予行為 210
11.1.3 數據訪問服務設計 210
11.1.4 單元測試 213
11.2 平台管理後台的訪問控制設計 214
11.2.1 在訪問控制中使用操作員 215
11.2.2 平台管理後台的許可權管理設計 215
11.3 商家的註冊管理設計 219
11.4 商家許可權及其選單資源管理設計 222
11.4.1 分類選單管理設計 222
11.4.2 模組選單管理設計 224
11.4.3 資源選單管理設計 228
11.5 商家角色管理設計 232
11.6 小結 236
第三部分 運維
第12章 雲服務環境與Docker部署工具 238
12.1 虛擬機與基於Docker創建的容器 238
12.2 安全可靠的雲服務環境 239
12.3 Docker和docker-compose的下載與配置 240
12.3.1 Docker引擎的安裝及使用 240
12.3.2 docker-compose的下載及配置 241
12.4 使用Docker方式發布微服務 242
12.4.1 鏡像創建及其生成腳本 242
12.4.2 服務發布與更新 243
12.5 使用Docker部署日誌分析平台 243
12.6 基於Docker的高級部署工具 246
12.6.1 私域鏡像倉庫 246
12.6.2 Docker Swarm 247
12.6.3 Kubernetes 249
12.7 小結 253
第13章 可擴展分散式資料庫集群的搭建 254
13.1 MySQL集群主機分配 255
13.2 主從同步設定 256
13.3 主主同步設定 259
13.4 資料庫代理中間件選擇 261
13.5 使用OneProxy實現讀寫分離設計 261
13.5.1 安裝OneProxy 262
13.5.2 高可用讀寫分離配置 263
13.6 OneProxy分庫分區設計 267
13.6.1 按範圍分庫分表 268
13.6.2 按值列表分庫分表 268
13.6.3 按散列算法分庫分表 269
13.7 雙機熱備設計 271
13.7.1 Real Server配置 272
13.7.2 LVS主機配置 273
13.7.3 LVS備用機配置 275
13.8 小結 277
第14章 高可用分散式檔案系統的組建 278
14.1 FastDFS架構 278
14.2 FastDFS的安裝 279
14.3 跟蹤伺服器配置 280
14.4 存儲節點配置 281
14.5 上傳檔案測試 282
14.6 Nginx的安裝及負載均衡配置 283
14.6.1 在跟蹤器上安裝Nginx 283
14.6.2 在存儲節點上安裝Nginx 285
14.7 開機啟動 287
14.7.1 開機啟動Tracker 287
14.7.2 開機啟動Storage 289
14.7.3 開機啟動Nginx 291
14.8 小結 293
第15章 使用Jenkins實現自動化構建 294
15.1 持續交付工作流程 295
15.2 Jenkins的安裝 296
15.3 Jenkins的基本配置 298
15.4 Jenkins的自動部署實例 300
15.4.1 創建任務 300
15.4.2 任務配置 301
15.4.3 執行任務 305
15.5 小結 309
後記 310
參考文獻 311"
3.5.1 移動商城Web UI微服務 30
3.5.2 商家管理後台的Web UI微服務 31
3.5.3 平台管理後台Web UI微服務 31
3.6 電商平台微服務體系架構 32
3.7 電商平台微服務項目工程 33
3.8 微服務項目資料庫選型 33
3.9 電商平台微服務項目代碼庫 34
3.10 小結 34
第二部分 開發
第4章 開發環境準備 36
4.1 選擇Java SDK的版本 36
4.2 下載InterlliJ IDEA 37
4.3 下載及配置Git客戶端 37
4.4 創建Spring Cloud項目 38
4.5 小結 39
第5章 微服務治理 40
5.1 使用Consul創建註冊中心 41
5.1.1 服務註冊與發現 42
5.1.2 統一配置管理 44
5.2 合理髮揮斷路器的作用 46
5.3 如何實現有效的監控 47
5.3.1 服務健康狀態監控 47
5.3.2 重大故障告警 49
5.3.3 斷路器儀錶盤 49
5.4 Zipkin鏈路跟蹤 52
5.5 ELK日誌分析平台 55
5.5.1 創建日誌分析平台 55
5.5.2 使用日誌分析平台 56
5.6 小結 57
第6章 類目管理微服務開發 58
6.1 了解領域驅動設計 58
6.1.1 DDD的分層結構 59
6.1.2 DDD的基本元素 59
6.2 Spring Data JPA 59
6.2.1 Druid數據源配置 60
6.2.2 JPA初始化和基本配置 62
6.3 實體建模 63
6.4 查詢對象設計 65
6.5 數據持久化設計 66
6.6 數據管理服務設計 68
6.7 單元測試 70
6.8 類目接口微服務開發 71
6.8.1 RESTful接口開發 71
6.8.2 微服務接口調試 73
6.9 基於RESTful的微服務接口調用 74
6.9.1 聲明式FeignClient設計 74
6.9.2 斷路器的使用 76
6.10 類目管理Web套用微服務開發 76
6.10.1 接口調用引用相關配置 77
6.10.2 Spring MVC控制器設計 77
6.11 使用Thymeleaf模板 78
6.11.1 HTML頁面設計 79
6.11.2 統一風格模板設計 80
6.12 總體測試 82
6.13 有關項目打包與部署 83
6.14 小結 84
第7章 庫存管理與分散式檔案系統 85
7.1 基於MyBatis的資料庫開發 85
7.1.1 使用經過組裝的MyBatis組件 85
7.1.2 數據對象及其表結構定義 86
7.1.3 Mapper與SQL定製 88
7.2 資料庫服務組裝 89
7.3 單元測試 91
7.4 庫存微服務接口開發 92
7.4.1 在主程式中支持MyBatis 92
7.4.2 基於REST協定的控制器設計 93
7.5 庫存管理的Web套用開發 94
7.5.1 公共對象的依賴引用 95
7.5.2 商品分頁數據調用設計 95
7.6 Web套用項目熱部署設定 97
7.7 使用分散式檔案系統DFS 99
7.7.1 分散式檔案系統客戶端開發 99
7.7.2 商品圖片上傳設計 102
7.7.3 富文本編輯器上傳圖片設計 106
7.7.4 建立本地檔案信息庫 108
7.8 總體測試 112
7.9 小結 114
第8章 海量訂單系統微服務開發 115
8.1 使用MongoDB支持海量數據 115
8.1.1 使用Mongo外掛程式 115
8.1.2 MongoDB數據源相關配置 116
8.2 訂單文檔建模 117
8.2.1 訂單及其明細數據 117
8.2.2 訂單狀態枚舉 119
8.3 反應式MongoDB編程設計 121
8.3.1 基於Spring Data的存儲庫接口設計 121
8.3.2 動態分頁查詢設計 121
8.4 Mongo單元測試 123
8.5 訂單接口微服務開發 125
8.6 訂單的分散式事務管理 127
8.6.1 訂單取消的訊息生成 127
8.6.2 訂單取消的庫存變化處理 129
8.7 訂單管理後台微服務開發 131
8.7.1 訂單查詢主頁設計 131
8.7.2 訂單狀態修改設計 133
8.8 集成測試 135
8.9 小結 137
第9章 移動商城的設計和開發 138
9.1 移動商城首頁設計 139
9.2 商城的分類查詢設計 143
9.3 商品詳情頁設計 145
9.4 用戶下單功能實現 147
9.5 商城的用戶登錄與賬戶切換設計 152
9.5.1 用戶登錄設計 152
9.5.2 切換賬號設計 155
9.6 訂單查詢設計 156
9.7 集成測試 160
9.8 小結 162
第10章 商家管理後台與SSO設計 163
10.1 商家許可權體系的設計及開發 164
10.1.1 許可權管理模型設計 165
10.1.2 許可權管理模型的持久化設計 170
10.1.3 許可權管理模型的服務封裝 171
10.2 商家管理微服務設計 175
10.2.1 商家管理服務層單元測試 175
10.2.2 商家服務的接口開發 178
10.3 SSO設計 183
10.3.1 SSO的基本配置 183
10.3.2 SSO第三方套用授權設計 184
10.3.3 SSO登錄認證設計 186
10.3.4 有關驗證碼的說明 191
10.3.5 SSO的主頁設計 193
10.4 SSO客戶端設計 196
10.4.1 安全認證的項目管理配置 196
10.4.2 安全認證項目的配置類 196
10.4.3 許可權管理驗證設計 198
10.4.4 客戶端套用接入SSO 201
10.4.5 有關跨站請求的相關設定 203
10.4.6 根據用戶許可權自動分配選單 203
10.5 小結 206
第11章 平台管理後台與商家選單資源管理 207
11.1 平台管理後台訪問控制設計 207
11.1.1 實體建模 207
11.1.2 為實體賦予行為 210
11.1.3 數據訪問服務設計 210
11.1.4 單元測試 213
11.2 平台管理後台的訪問控制設計 214
11.2.1 在訪問控制中使用操作員 215
11.2.2 平台管理後台的許可權管理設計 215
11.3 商家的註冊管理設計 219
11.4 商家許可權及其選單資源管理設計 222
11.4.1 分類選單管理設計 222
11.4.2 模組選單管理設計 224
11.4.3 資源選單管理設計 228
11.5 商家角色管理設計 232
11.6 小結 236
第三部分 運維
第12章 雲服務環境與Docker部署工具 238
12.1 虛擬機與基於Docker創建的容器 238
12.2 安全可靠的雲服務環境 239
12.3 Docker和docker-compose的下載與配置 240
12.3.1 Docker引擎的安裝及使用 240
12.3.2 docker-compose的下載及配置 241
12.4 使用Docker方式發布微服務 242
12.4.1 鏡像創建及其生成腳本 242
12.4.2 服務發布與更新 243
12.5 使用Docker部署日誌分析平台 243
12.6 基於Docker的高級部署工具 246
12.6.1 私域鏡像倉庫 246
12.6.2 Docker Swarm 247
12.6.3 Kubernetes 249
12.7 小結 253
第13章 可擴展分散式資料庫集群的搭建 254
13.1 MySQL集群主機分配 255
13.2 主從同步設定 256
13.3 主主同步設定 259
13.4 資料庫代理中間件選擇 261
13.5 使用OneProxy實現讀寫分離設計 261
13.5.1 安裝OneProxy 262
13.5.2 高可用讀寫分離配置 263
13.6 OneProxy分庫分區設計 267
13.6.1 按範圍分庫分表 268
13.6.2 按值列表分庫分表 268
13.6.3 按散列算法分庫分表 269
13.7 雙機熱備設計 271
13.7.1 Real Server配置 272
13.7.2 LVS主機配置 273
13.7.3 LVS備用機配置 275
13.8 小結 277
第14章 高可用分散式檔案系統的組建 278
14.1 FastDFS架構 278
14.2 FastDFS的安裝 279
14.3 跟蹤伺服器配置 280
14.4 存儲節點配置 281
14.5 上傳檔案測試 282
14.6 Nginx的安裝及負載均衡配置 283
14.6.1 在跟蹤器上安裝Nginx 283
14.6.2 在存儲節點上安裝Nginx 285
14.7 開機啟動 287
14.7.1 開機啟動Tracker 287
14.7.2 開機啟動Storage 289
14.7.3 開機啟動Nginx 291
14.8 小結 293
第15章 使用Jenkins實現自動化構建 294
15.1 持續交付工作流程 295
15.2 Jenkins的安裝 296
15.3 Jenkins的基本配置 298
15.4 Jenkins的自動部署實例 300
15.4.1 創建任務 300
15.4.2 任務配置 301
15.4.3 執行任務 305
15.5 小結 309
後記 310
參考文獻 311,第一部分 架構
第1章 微服務架構與Spring Cloud 2
1.1 微服務架構的特點 2
1.2 微服務架構與整體式架構的區別 4
1.3 微服務架構與SOA的比較 7
1.4 微服務架構的優勢 8
1.5 為實施微服務架構做好準備 9
1.5.1 思想觀念 9
1.5.2 團隊管理 10
1.5.3 自動化基礎設施 10
1.6 Spring Cloud的優勢 11
1.7 Spring Cloud工具套件介紹 12
1.8 Spring Cloud的版本說明 15
1.9 小結 15
第2章 高並發微服務架構設計 16
2.1 微服務總體架構設計 16
2.2 自然的壓力分解 18
2.3 可彈性伸縮的集群環境 18
2.4 高度的獨立性設計 19
2.5 API的分層調用關係 19
2.6 高可用的基礎資源支持 20
2.7 快速回響的自動化基礎設施 21
2.8 完善的監控體系 21
2.9 微服務的安全保障 21
2.10 小結 22
第3章 大型電商平台設計實例 23
3.1 電商平台總體設計 23
3.1.1 總體業務流程設計 23
3.1.2 總體業務功能設計 25
3.2 電商平台業務模型設計 25
3.2.1 移動商城業務模型 26
3.2.2 商家管理後台業務模型 26
3.2.3 平台管理後台業務模型 27
3.3 合理劃分微服務 28
3.4 創建REST API微服務 29
3.5 創建Web UI微服務 30
3.5.1 移動商城Web UI微服務 30
3.5.2 商家管理後台的Web UI微服務 31
3.5.3 平台管理後台Web UI微服務 31
3.6 電商平台微服務體系架構 32
3.7 電商平台微服務項目工程 33
3.8 微服務項目資料庫選型 33
3.9 電商平台微服務項目代碼庫 34
3.10 小結 34
第二部分 開發
第4章 開發環境準備 36
4.1 選擇Java SDK的版本 36
4.2 下載InterlliJ IDEA 37
4.3 下載及配置Git客戶端 37
4.4 創建Spring Cloud項目 38
4.5 小結 39
第5章 微服務治理 40
5.1 使用Consul創建註冊中心 41
5.1.1 服務註冊與發現 42
5.1.2 統一配置管理 44
5.2 合理髮揮斷路器的作用 46
5.3 如何實現有效的監控 47
5.3.1 服務健康狀態監控 47
5.3.2 重大故障告警 49
5.3.3 斷路器儀錶盤 49
5.4 Zipkin鏈路跟蹤 52
5.5 ELK日誌分析平台 55
5.5.1 創建日誌分析平台 55
5.5.2 使用日誌分析平台 56
5.6 小結 57
第6章 類目管理微服務開發 58
6.1 了解領域驅動設計 58
6.1.1 DDD的分層結構 59
6.1.2 DDD的基本元素 59
6.2 Spring Data JPA 59
6.2.1 Druid數據源配置 60
6.2.2 JPA初始化和基本配置 62
6.3 實體建模 63
6.4 查詢對象設計 65
6.5 數據持久化設計 66
6.6 數據管理服務設計 68
6.7 單元測試 70
6.8 類目接口微服務開發 71
6.8.1 RESTful接口開發 71
6.8.2 微服務接口調試 73
6.9 基於RESTful的微服務接口調用 74
6.9.1 聲明式FeignClient設計 74
6.9.2 斷路器的使用 76
6.10 類目管理Web套用微服務開發 76
6.10.1 接口調用引用相關配置 77
6.10.2 Spring MVC控制器設計 77
6.11 使用Thymeleaf模板 78
6.11.1 HTML頁面設計 79
6.11.2 統一風格模板設計 80
6.12 總體測試 82
6.13 有關項目打包與部署 83
6.14 小結 84
第7章 庫存管理與分散式檔案系統 85
7.1 基於MyBatis的資料庫開發 85
7.1.1 使用經過組裝的MyBatis組件 85
7.1.2 數據對象及其表結構定義 86
7.1.3 Mapper與SQL定製 88
7.2 資料庫服務組裝 89
7.3 單元測試 91
7.4 庫存微服務接口開發 92
7.4.1 在主程式中支持MyBatis 92
7.4.2 基於REST協定的控制器設計 93
7.5 庫存管理的Web套用開發 94
7.5.1 公共對象的依賴引用 95
7.5.2 商品分頁數據調用設計 95
7.6 Web套用項目熱部署設定 97
7.7 使用分散式檔案系統DFS 99
7.7.1 分散式檔案系統客戶端開發 99
7.7.2 商品圖片上傳設計 102
7.7.3 富文本編輯器上傳圖片設計 106
7.7.4 建立本地檔案信息庫 108
7.8 總體測試 112
7.9 小結 114
第8章 海量訂單系統微服務開發 115
8.1 使用MongoDB支持海量數據 115
8.1.1 使用Mongo外掛程式 115
8.1.2 MongoDB數據源相關配置 116
8.2 訂單文檔建模 117
8.2.1 訂單及其明細數據 117
8.2.2 訂單狀態枚舉 119
8.3 反應式MongoDB編程設計 121
8.3.1 基於Spring Data的存儲庫接口設計 121
8.3.2 動態分頁查詢設計 121
8.4 Mongo單元測試 123
8.5 訂單接口微服務開發 125
8.6 訂單的分散式事務管理 127
8.6.1 訂單取消的訊息生成 127
8.6.2 訂單取消的庫存變化處理 129
8.7 訂單管理後台微服務開發 131
8.7.1 訂單查詢主頁設計 131
8.7.2 訂單狀態修改設計 133
8.8 集成測試 135
8.9 小結 137
第9章 移動商城的設計和開發 138
9.1 移動商城首頁設計 139
9.2 商城的分類查詢設計 143
9.3 商品詳情頁設計 145
9.4 用戶下單功能實現 147
9.5 商城的用戶登錄與賬戶切換設計 152
9.5.1 用戶登錄設計 152
9.5.2 切換賬號設計 155
9.6 訂單查詢設計 156
9.7 集成測試 160
9.8 小結 162
第10章 商家管理後台與SSO設計 163
10.1 商家許可權體系的設計及開發 164
10.1.1 許可權管理模型設計 165
10.1.2 許可權管理模型的持久化設計 170
10.1.3 許可權管理模型的服務封裝 171
10.2 商家管理微服務設計 175
10.2.1 商家管理服務層單元測試 175
10.2.2 商家服務的接口開發 178
10.3 SSO設計 183
10.3.1 SSO的基本配置 183
10.3.2 SSO第三方套用授權設計 184
10.3.3 SSO登錄認證設計 186
10.3.4 有關驗證碼的說明 191
10.3.5 SSO的主頁設計 193
10.4 SSO客戶端設計 196
10.4.1 安全認證的項目管理配置 196
10.4.2 安全認證項目的配置類 196
10.4.3 許可權管理驗證設計 198
10.4.4 客戶端套用接入SSO 201
10.4.5 有關跨站請求的相關設定 203
10.4.6 根據用戶許可權自動分配選單 203
10.5 小結 206
第11章 平台管理後台與商家選單資源管理 207
11.1 平台管理後台訪問控制設計 207
11.1.1 實體建模 207
11.1.2 為實體賦予行為 210
11.1.3 數據訪問服務設計 210
11.1.4 單元測試 213
11.2 平台管理後台的訪問控制設計 214
11.2.1 在訪問控制中使用操作員 215
11.2.2 平台管理後台的許可權管理設計 215
11.3 商家的註冊管理設計 219
11.4 商家許可權及其選單資源管理設計 222
11.4.1 分類選單管理設計 222
11.4.2 模組選單管理設計 224
11.4.3 資源選單管理設計 228
11.5 商家角色管理設計 232
11.6 小結 236
第三部分 運維
第12章 雲服務環境與Docker部署工具 238
12.1 虛擬機與基於Docker創建的容器 238
12.2 安全可靠的雲服務環境 239
12.3 Docker和docker-compose的下載與配置 240
12.3.1 Docker引擎的安裝及使用 240
12.3.2 docker-compose的下載及配置 241
12.4 使用Docker方式發布微服務 242
12.4.1 鏡像創建及其生成腳本 242
12.4.2 服務發布與更新 243
12.5 使用Docker部署日誌分析平台 243
12.6 基於Docker的高級部署工具 246
12.6.1 私域鏡像倉庫 246
12.6.2 Docker Swarm 247
12.6.3 Kubernetes 249
12.7 小結 253
第13章 可擴展分散式資料庫集群的搭建 254
13.1 MySQL集群主機分配 255
13.2 主從同步設定 256
13.3 主主同步設定 259
13.4 資料庫代理中間件選擇 261
13.5 使用OneProxy實現讀寫分離設計 261
13.5.1 安裝OneProxy 262
13.5.2 高可用讀寫分離配置 263
13.6 OneProxy分庫分區設計 267
13.6.1 按範圍分庫分表 268
13.6.2 按值列表分庫分表 268
13.6.3 按散列算法分庫分表 269
13.7 雙機熱備設計 271
13.7.1 Real Server配置 272
13.7.2 LVS主機配置 273
13.7.3 LVS備用機配置 275
13.8 小結 277
第14章 高可用分散式檔案系統的組建 278
14.1 FastDFS架構 278
14.2 FastDFS的安裝 279
14.3 跟蹤伺服器配置 280
14.4 存儲節點配置 281
14.5 上傳檔案測試 282
14.6 Nginx的安裝及負載均衡配置 283
14.6.1 在跟蹤器上安裝Nginx 283
14.6.2 在存儲節點上安裝Nginx 285
14.7 開機啟動 287
14.7.1 開機啟動Tracker 287
14.7.2 開機啟動Storage 289
14.7.3 開機啟動Nginx 291
14.8 小結 293
第15章 使用Jenkins實現自動化構建 294
15.1 持續交付工作流程 295
15.2 Jenkins的安裝 296
15.3 Jenkins的基本配置 298
15.4 Jenkins的自動部署實例 300
15.4.1 創建任務 300
15.4.2 任務配置 301
15.4.3 執行任務 305
15.5 小結 309
後記 310
參考文獻 311"

相關詞條

熱門詞條

聯絡我們