Spring微服務架構設計 第2版( 簡體 字) | |
作者:[印]拉杰什·R. V.(Rajesh R V) | 類別:1. -> 程式設計 -> JAVA -> Spring |
出版社:人民郵電出版社 | 3dWoo書號: 52478 詢問書籍請說出此書號! 有庫存 NT售價: 445 元 |
出版日:4/1/2020 | |
頁數:283 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787115533753 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
版權聲明
第 1章 微服務揭秘 1 1.1 微服務的演進 1 1.1.1 微服務演進的催化劑——業務需求 1 1.1.2 微服務演進的催化劑——技術演進 3 1.1.3 架構演進勢在必行 4 1.2 什么是微服務 5 1.3 微服務蜂巢 7 1.4 微服務架構的設計原則 8 1.4.1 每個服務承擔單一責任 8 1.4.2 微服務是自治的 9 1.5 微服務的特性 10 1.5.1 服務是一等公民 10 1.5.2 微服務是輕量級的 11 1.5.3 微服務的混合架構 11 1.5.4 微服務環境中的自動化 12 1.5.5 微服務的生態支持系統 13 1.5.6 微服務是動態分布式的 13 1.5.7 抗脆弱、快速失敗和自我愈合 15 1.6 微服務的實例 15 1.6.1 一個酒店門戶網站的例子 15 1.6.2 一個旅行社門戶網站的例子 18 1.7 微服務架構的優勢 19 1.7.1 支持混合架構 19 1.7.2 為試驗和創新賦能 20 1.7.3 彈性伸縮和選擇性擴容 21 1.7.4 服務可替換 23 1.7.5 為構建有機系統賦能 23 1.7.6 有助于管理技術債 24 1.7.7 允許不同版本并存 25 1.7.8 支持構建自組織系統 26 1.7.9 支持事件驅動架構 27 1.7.10 為DevOps賦能 28 1.8 小結 28 第 2章 相關架構風格和用例 29 2.1 SOA 29 2.1.1 面向服務的集成 30 2.1.2 遺留系統現代化 31 2.1.3 面向服務的應用 31 2.1.4 用SOA遷移單體應用 32 2.2 十二要素應用 32 2.2.1 單一代碼庫 33 2.2.2 依賴捆綁 33 2.2.3 配置外部化 34 2.2.4 支撐服務可尋址 34 2.2.5 構建、發布和運行時的隔離 35 2.2.6 無狀態、不共享進程 36 2.2.7 通過端口綁定暴露服務 36 2.2.8 以水平擴展實現高并發 36 2.2.9 以最小的開銷實現可處置性 37 2.2.10 開發環境和生產環境的對等性 37 2.2.11 日志信息外部化 37 2.2.12 打包后臺管理進程 38 2.3 無服務器計算 38 2.4 Lambda架構 39 2.5 DevOps、云計算和容器 40 2.5.1 DevOps是實現微服務架構的實踐和流程 41 2.5.2 以云計算和容器作為微服務的自助式基礎設施 41 2.6 響應式微服務 42 2.7 微服務用例 45 2.8 微服務先行者的共同點 46 2.9 微服務框架 48 2.10 小結 49 第3章 用Spring Boot構建微服務 50 3.1 搭建開發環境 50 3.2 用Spring Boot構建RESTful微服務 51 3.3 Spring Boot入門 51 3.4 開發Spring Boot微服務 52 3.5 開發第 一個Spring Boot微服務 53 3.6 啟用HATEOAS的Spring Boot微服務 60 3.7 響應式Spring Boot微服務 64 3.7.1 使用Spring WebFlux實現響應式微服務 64 3.7.2 用Spring Boot和RabbitMQ實現響應式微服務 68 3.8 實現微服務安全 70 3.8.1 用基本安全策略保護微服務 70 3.8.2 用OAuth2保護微服務 71 3.9 為微服務交互啟用跨域訪問 73 3.10 使用Spring Boot Actuator實現微服務instrumentation 74 3.10.1 利用JConsole監控應用 76 3.10.2 利用ssh監控應用 76 3.10.3 添加自定義健康檢查模塊 77 3.10.4 自定義指標 78 3.11 微服務文檔化 79 3.12 綜合實例:開發客戶注冊微服務 80 3.13 小結 89 第4章 應用微服務概念 90 4.1 微服務設計指南 90 4.1.1 確定微服務的邊界 90 4.1.2 設計微服務通信方式 94 4.1.3 微服務編排 98 4.1.4 每個微服務包含多少個端口——一個還是多個 102 4.1.5 每個虛擬機運行多少個微服務——一個還是多個 102 4.1.6 規則引擎——共享還是嵌入 103 4.1.7 BPM和工作流的作用 104 4.1.8 微服務可以共享數據庫嗎 106 4.1.9 微服務可以無頭嗎 108 4.1.10 確定事務邊界 108 4.1.11 服務端口設計的考量點 110 4.1.12 處理共享類庫 111 4.1.13 微服務中的UI 112 4.1.14 微服務中使用API網關 114 4.1.15 在微服務架構中使用ESB和iPaaS 115 4.1.16 服務版本化的考慮 116 4.1.17 跨域設計 118 4.1.18 處理共享的引用數據 118 4.1.19 微服務和批量操作 119 4.2 小結 121 第5章 微服務能力模型 122 5.1 微服務能力模型簡介 122 5.2 核心能力 123 5.2.1 服務監聽器和類庫 124 5.2.2 存儲能力 124 5.2.3 服務實現 124 5.2.4 服務端口 124 5.3 基礎設施能力 125 5.3.1 云計算 125 5.3.2 容器運行時 125 5.3.3 容器編排 126 5.4 支撐能力 126 5.4.1 服務網關 126 5.4.2 軟件定義的負載均衡 126 5.4.3 集中式日志管理 127 5.4.4 服務發現 127 5.4.5 安全服務 127 5.4.6 服務配置 128 5.4.7 運維監控 128 5.4.8 依賴管理 128 5.4.9 數據湖 129 5.4.10 可靠的消息機制 130 5.5 流程和治理能力 130 5.5.1 DevOps 130 5.5.2 自動化工具 130 5.5.3 容器注冊表 131 5.5.4 微服務文檔化 131 5.5.5 參考架構和類庫 132 5.6 微服務成熟度模型 133 5.6.1 第0級——傳統 133 5.6.2 第 1級——初級 134 5.6.3 第 2級——中級 134 5.6.4 第3級——高級 134 5.7 微服務采用的入口 135 5.8 小結 136 第6章 微服務演進案例研究 137 6.1 理解PSS應用 137 6.1.1 業務流程視圖 137 6.1.2 功能視圖 138 6.1.3 架構視圖 139 6.1.4 設計視圖 139 6.1.5 實現視圖 140 6.1.6 部署視圖 141 6.2 單體之死 142 6.2.1 痛點 142 6.2.2 應急修復 142 6.2.3 復盤 143 6.3 訴諸微服務——有計劃地遷移 146 6.3.1 業務用例 147 6.3.2 遷移方法 148 6.3.3 確定微服務邊界 149 6.3.4 分析服務依賴關系 149 6.3.5 微服務遷移的優先級 157 6.3.6 遷移過程中的數據同步 158 6.3.7 管理引用數據 160 6.3.8 UI和Web應用 161 6.3.9 測試策略 163 6.3.10 構建生態系統能力 164 6.3.11 只遷移必要的模塊 164 6.3.12 微服務的內部層次結構 165 6.3.13 微服務編排 166 6.3.14 與其他系統的集成 166 6.3.15 遷移共享類庫 167 6.3.16 處理異常 167 6.4 目標實現 169 6.4.1 項目實現 170 6.4.2 項目運行和測試 171 6.5 后續工作 174 6.6 小結 175 第7章 用Spring Cloud組件擴展微服務 176 7.1 什么是Spring Cloud 176 7.2 Spring Cloud的版本 177 7.3 搭建BrownField航空公司PSS系統的項目環境 177 7.4 Spring Cloud Config 178 7.4.1 用配置服務器構建微服務 180 7.4.2 搭建配置服務器 181 7.4.3 理解配置服務器URL 183 7.4.4 處理配置變更 187 7.4.5 用Spring Cloud總線推送配置變更 187 7.4.6 搭建配置服務器的高可用集群 188 7.4.7 監控配置服務器的健康狀態 189 7.4.8 用配置服務器管理配置文件 189 7.4.9 完成修改以使用配置服務器 189 7.5 將Eureka用于服務注冊和發現 190 7.5.1 理解動態服務注冊和發現 190 7.5.2 理解Eureka 191 7.5.3 搭建Eureka服務器 192 7.5.4 Eureka的高可用性 196 7.6 用Zuul代理作為API網關 198 7.6.1 搭建Zuul 199 7.6.2 Zuul的高可用性 203 7.7 響應式微服務流 205 7.8 用Spring Cloud Security 保護微服務 208 7.9 總結BrownField航空公司的PSS應用架構 209 7.10 小結 211 第8章 微服務的日志管理和監控 212 8.1 日志管理的挑戰 212 8.2 集中式日志管理方案 213 8.3 日志管理方案的選取 215 8.3.1 云服務 215 8.3.2 現成的方案 215 8.3.3 集成一流的組件 215 8.3.4 自定義日志管理方案的實現 216 8.3.5 用Spring Cloud Sleuth實現分布式跟蹤 220 8.4 監控微服務 222 8.4.1 微服務監控的挑戰 222 8.4.2 監控工具 224 8.4.3 監控微服務依賴 225 8.4.4 用Spring Cloud Hystrix實現微服務容錯 226 8.4.5 用Turbine聚合Hystrix流 229 8.5 使用數據湖做數據分析 232 8.6 小結 233 第9章 用Docker容器化微服務 234 9.1 BrownField公司PSS微服務的不足之處 234 9.2 什么是容器 235 9.3 虛擬機和容器的區別 236 9.4 容器的優勢 237 9.5 微服務和容器 238 9.6 Docker簡介 239 9.7 將微服務部署到Docker中 242 9.8 在Docker上運行RabbitMQ 246 9.9 使用Docker注冊表 246 9.9.1 設置Docker Hub 247 9.9.2 將微服務發布到Docker Hub 247 9.10 微服務上云 247 9.11 在EC2上運行BrownFiled公司的微服務 248 9.12 容器化的未來 249 9.13 小結 249 第 10章 用Mesos和Marathon擴展容器化的微服務 250 10.1 微服務擴容 250 10.1.1 理解自動擴容 251 10.1.2 缺失的部分 252 10.2 容器編排 252 10.2.1 為什么容器編排很重要 253 10.2.2 容器編排是什么 253 10.2.3 容器編排和微服務的關系 255 10.2.4 容器編排和虛擬化的關系 256 10.2.5 容器編排方案 256 10.3 用Mesos和Marathon實現容器編排 259 10.4 用DCOS實現Mesos和Marathon 262 10.5 為BrownField公司的微服務實現Mesos和Marathon 263 10.5.1 安裝Mesos、Marathon及相關組件 263 10.5.2 運行Mesos和Marathon 264 10.6 準備部署BrownField公司的PSS微服務 266 10.7 小結 269 第 11章 微服務開發生命周期 270 11.1 微服務開發的實踐要點 270 11.1.1 理解業務動機和價值 270 11.1.2 從項目開發到產品開發的觀念轉變 270 11.1.3 選擇正確的開發理念 271 11.1.4 使用最小可行產品的概念 271 11.1.5 克服遺留熱點 271 11.1.6 建立自組織的團隊 272 11.1.7 構建自服務云 274 11.1.8 構建一套微服務生態系統 274 11.1.9 以DevOps實踐貫穿微服務開發的生命周期 274 11.1.10 價值驅動計劃 275 11.1.11 持續監控和反饋 275 11.2 自動化開發周期 276 11.2.1 開發 277 11.2.2 集成 278 11.2.3 測試 279 11.2.4 部署 282 11.2.5 監控和反饋 282 11.2.6 配置管理 282 11.2.7 微服務開發治理、參考架構和類庫 283 11.3 小結 283 隨著Spring Boot和Spring Cloud的推出,Spring框架變得更加強大,支持快速開發和高效運維,非常適合實現微服務架構,能夠滿足微服務的并發、精細監控和可靠易用等需求。《Spring微服務架構設計(第2版)》提供了實現大型響應式微服務的實用方法和指導原則,并通過示例全面講解如何構建微服務。主要內容包括:微服務架構介紹以及構建微服務時面臨的挑戰,如何用Spring Boot和Spring Cloud開發微服務系統,微服務能力模型,如何演進微服務,微服務的日志管理和監控,如何用Docker、Mesos和 Marathon管理互聯網級微服務架構,等等。
|