![](/c49/99/12832612.jpg)
出版社:人民郵電出版社 ISBN:9787115533753 版次:1 商品編碼:12832612 品牌:iTuring 包裝:平裝 開本:16開 出版時間:2020-04-01 用紙:膠版紙 頁數:283 正文語種:中文 作者:拉傑什·R.,V.(Rajesh,R,V),楊文其
" 編輯推薦 Spring框架是成熟的輕量級開源框架。面向對像的特性使得其簡單易用,利用它可以快速開發出高可用的Java應用。隨著功能的不斷豐富與增強,Spring在構建微服務方面愈發遊刃有餘。
本書通過一繫列生動示例,全面、細致地闡述了如何利用Spring框架、Spring Boot和Spring Cloud構建微服務,以及如何利用Docker部署微服務,並用Mesos和Marathon進行管理。對於想要構建強大的互聯網級應用,以滿足現代業務需求的Spring開發人員來說,這本實用指南極具參考價值! - 微服務的演進、特性與優勢 - SOA、“十二要素應用”以及Lambda架構 - 利用Spring Boot構建微服務 - 微服務設計的經驗法則、挑戰及應對方案 - 構建微服務能力模型 - 案例研究:從單體應用遷移至微服務 - 利用Spring Cloud擴展微服務 - 管理日志和實施監控的各種工具 - 利用Docker將微服務容器化 - 微服務的擴容和容器編排方案 - 利用Meso和Marathon管理微服務 - 微服務開發的流程與最佳實踐 內容簡介 隨著Spring Boot和Spring Cloud的推出,Spring框架變得更加強大,支持快速開發和高效運維,非常適合實現微服務架構,能夠滿足微服務的並發、精細監控和可靠易用等需求。《Spring微服務架構設計(第2版)》提供了實現大型響應式微服務的實用方法和指導原則,並通過示例全面講解如何構建微服務。主要內容包括:微服務架構介紹以及構建微服務時面臨的挑戰,如何用Spring Boot和Spring Cloud開發微服務繫統,微服務能力模型,如何演進微服務,微服務的日志管理和監控,如何用Docker、Mesos和 Marathon管理互聯網級微服務架構,等等。 作者簡介 拉傑什·R. V.(Rajesh R V) 阿聯酋航空公司首席架構師,在眾多技術領域擁有豐富的實踐經驗,參與開發過許多大規模的重要項目,由他主導架構設計的Open Travel Platform在2011年贏得了紅帽創新大獎。他還是BEA認證WebLogic管理員、Sun認證Java企業架構師、Open Group認證TOGAF實踐者和IASA全球CITA-A認證架構專家。 目錄 版權聲明 第 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 查看全部↓
" |