Spring Cloud 微服務架構實戰

周喜平

  • Spring Cloud 微服務架構實戰-preview-1
  • Spring Cloud 微服務架構實戰-preview-2
Spring Cloud 微服務架構實戰-preview-1

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

商品描述

本書以實戰化訓練為宗旨,用詳盡的案例講述 Spring Cloud 的項目搭建方法和常用技術。每個案例都配有詳細講解和代碼,可以幫助讀者快速掌握書中的各個知識點。本書首先介紹系統架構的發展歷史、常見的微服務架構、Spring Boot 和 Spring Cloud 的關系;然後介紹Spring Cloud 開發環境的搭建,如 JDK、IntelliJ IDEA、Maven 的安裝和配置;繼而介紹微服務環境的創建、微服務項目案例的搭建和微服務的調用;最後介紹常用的微服務技術,如 Eureka、Ribbon、Feign、Hystrix、Spring Cloud Gateway、Spring Cloud Stream 和 Spring Cloud Config。

本書適合具備 Java 基礎的開發人員、對微服務架構和 Spring Cloud 感興趣的讀者、想要瞭解 Spring 或Spring Cloud 的開發人員閱讀。對嘗試選擇或實施微服務架構的團隊來說,本書具有較高的參考價值。

作者簡介

周喜平,教授,研究方向为软件工程、软件开发技术。河南省优秀教师,河南省教育厅学术带头人,河南省高等学校计算机类专业教学指导委员会委员。发表论文30余篇,出版专著7部,主持和参与科研项目20余项,其中“河南省外经贸厅办工自动化系统”“电力及施工企业固定资产管理系统”“惠农资金管理系统”“地市级居民医疗保险信息管理系统”“纯电动汽车高并发数据采集平台”“基于标准分的教师评教系统”“智慧消防云平台”等项目均采用Java工具实现。

目錄大綱

001 第 1 章 認識微服務

002 1.1 系統架構的發展歷史

002   1.1.1 單體架構

003   1.1.2 垂直架構

003   1.1.3 分佈式架構

004   1.1.4 面向服務的架構

004   1.1.5 微服務架構

005 1.2 常見的微服務架構

006   1.2.1 Spring Cloud

008   1.2.2 Dubbo

009   1.2.3 Dropwizard

009   1.2.4 Cricket

009   1.2.5 Jersey

009   1.2.6 Play

009 1.3 Spring Boot 和 Spring Cloud 的關系

010   1.3.1 認識 Spring Boot

011   1.3.2 Spring Boot 整合 Spring Cloud

013 第 2 章 準備開發環境

014 2.1 Java 開發環境 JDK

014   2.1.1 下載 JDK

016   2.1.2 安裝 JDK

018   2.1.3 配置 Java 環境變量

019 2.2 開發工具 IntelliJ IDEA

019   2.2.1 下載 IntelliJ IDEA

020   2.2.2 安裝 IntelliJ IDEA

026 2.3 項目管理工具 Maven

027   2.3.1 下載 Maven

028   2.3.2 安裝 Maven

028   2.3.3 配置 Maven 環境變量

029   2.3.4 配置 Maven 本地倉庫和下載源

030   2.3.5 與 IntelliJ IDEA 集成

031 第 3 章 貫穿案例

032 3.1 數據庫

033 3.2 創建工程

033   3.2.1 創建父工程

035   3.2.2 創建子工程—用戶微服務

040   3.2.3 創建子工程—商品微服務

045   3.2.4 創建子工程—訂單微服務

049 3.3 使用 Postman 測試微服務

049   3.3.1 測試新增

050   3.3.2 測試查詢全部

050   3.3.3 測試根據 id 查詢單個

051   3.3.4 測試修改

052   3.3.5 測試刪除

053 3.4 調用微服務

053   3.4.1 介紹 RestTemplate 類

053   3.4.2 使用 RestTemplate 調用微服務

054   3.4.3 分析硬編碼存在的問題

055 第 4 章 Eureka 服務註冊和發現

056 4.1 認識 Eureka

056   4.1.1 服務註冊和服務發現

057   4.1.2 註冊中心

059   4.1.3 Eureka 框架的原理

060 4.2 使用 Eureka

060   4.2.1 搭建 Eureka 註冊中心

063   4.2.2 將服務註冊到 Eureka 註冊中心

064   4.2.3 使用 Eureka 的元數據完成服務調用

065 4.3 Eureka 服務端高可用集群

066   4.3.1 搭建 Eureka 服務端高可用集群

068   4.3.2 將服務註冊到 Eureka 服務端集群

070 4.4 Eureka 常見問題

070   4.4.1 服務註冊慢

070   4.4.2 服務節點剔除問題

071   4.4.3 監控頁面顯示 IP 地址信息

071 4.5 Eureka 源碼解析

072   4.5.1 服務註冊表

073   4.5.2 服務註冊

075   4.5.3 接收服務心跳

076   4.5.4 服務剔除

078   4.5.5 服務下線

080   4.5.6 集群同步

084   4.5.7 獲取註冊表中服務實例的信息

089 第 5 章 基於 Ribbon 服務調用

090 5.1 認識 Ribbon

090   5.1.1 微服務之間的交互

091   5.1.2 Ribbon 的兩個主要作用

091   5.1.3 客戶端的負載均衡

093 5.2 基於 Ribbon 實現負載均衡調用

093   5.2.1 坐標依賴

094   5.2.2 工程改造

097   5.2.3 代碼測試

098 5.3 Ribbon 源碼解析

098   5.3.1 配置和實例初始化

100   5.3.2 負載均衡器

102   5.3.3 ILoadBalancer 的實現

105   5.3.4 負載均衡策略實現

115 第 6 章 基於 Feign 服務調用

116 6.1 認識 Feign

116   6.1.1 Java 項目中接口的調用方式

117   6.1.2 Feign 和 Ribbon 的關系

117 6.2 使用 Feign 實現服務調用

117   6.2.1 坐標依賴

117   6.2.2 工程改造

119   6.2.3 代碼測試

120 6.3 Feign 自定義配置和使用

120   6.3.1 日誌配置

122   6.3.2 超時時間配置

122   6.3.3 客戶端組件配置

123   6.3.4 壓縮配置

124   6.3.5 使用配置文件自定義 Feign 的配置

125 6.4 源碼分析

125   6.4.1 核心組件與概念

126   6.4.2 動態註冊 BeanDefinition

133   6.4.3 實例初始化

136   6.4.4 函數調用和網絡請求

143 第 7 章 Hystrix 服務熔斷

144 7.1 認識 Hystrix

144   7.1.1 雪崩效應

145   7.1.2 線程隔離

146   7.1.3 服務熔斷

147 7.2 使用 REST 實現服務熔斷

147   7.2.1 坐標依賴

147   7.2.2 工程改造

150   7.2.3 代碼測試

150 7.3 使用 Feign 實現服務熔斷

151   7.3.1 坐標依賴

151   7.3.2 工程改造

153   7.3.3 代碼測試

153 7.4 使用 Hystrix 實現監控

154   7.4.1 使用 Hystrix Dashboard 查看監控數據

157   7.4.2 使用 Hystrix Turbine 聚合監控數據

159   7.4.3 斷路器的狀態

162   7.4.4 斷路器的隔離策略

163 7.5 源碼分析

164   7.5.1 封裝 HystrixCommand

169   7.5.2 斷路器邏輯

175 第 8 章 Spring Cloud Gateway 服務網關

176 8.1 認識 Spring Cloud Gateway

177   8.1.1 微服務網關概述

178   8.1.2 微服務網關工作流程

178 8.2 實現服務網關

179   8.2.1  創建子工程——服務網關

179   8.2.2 坐標依賴

179   8.2.3 工程改造

182   8.2.4 代碼測試

183 8.3 路由規則

183   8.3.1 路由規則概述

188   8.3.2 動態路由

189   8.3.3 重寫轉發路徑

191 8.4 過濾器

191   8.4.1 過濾器基礎

192   8.4.2 局部過濾器

194   8.4.3 全局過濾器

196 8.5 網關限流

197   8.5.1 常見的限流算法

197   8.5.2 基於過濾器的限流

201   8.5.3 基於 Sentinel 的限流

205 8.6 源碼解析

206   8.6.1 初始化配置

207   8.6.2 網關處理器

209   8.6.3 路由定義定位器

211   8.6.4 路由定位器

211   8.6.5 路由斷言

212   8.6.6 網關過濾器

213   8.6.7 全局過濾器

213   8.6.8  API 端點

215 第 9 章 Spring Cloud Stream 消息驅動

216 9.1 認識 Spring Cloud Stream

216   9.1.1 消息隊列

218   9.1.2 綁定器

219   9.1.3 發布訂閱模式

220 9.2 實現消息驅動

220   9.2.1 安裝 RabbitMQ

224   9.2.2 消息生產者

226   9.2.3 消息消費者

229   9.2.4 自定義消息通道

231 9.3 消費者組

232   9.3.1 工程改造

234   9.3.2 代碼測試

234 9.4 消費分區

235   9.4.1 工程改造

237   9.4.2 代碼測試

238 9.5 源碼解析

239   9.5.1 動態註冊 BeanDefinition

241   9.5.2 消息發送的流程

243   9.5.3 @StreamListener 註解的處理

249 第 10 章 Spring Cloud Config 分佈式配置中心

250 10.1 認識 Spring Cloud Config

251   10.1.1 配置中心概述

251   10.1.2 其他配置中心

251 10.2 實現配置中心

251   10.2.1 配置管理

254   10.2.2 服務端

257   10.2.3 客戶端

259   10.2.4 配置刷新

264 10.3 服務總線

264   10.3.1 消息代理

265   10.3.2 工程改造

270 10.4 源碼解析

271   10.4.1 配置服務器

280   10.4.2 配置客戶端