微服務架構深度解析:原理、實踐與進階

微服務架構深度解析:原理、實踐與進階

作者: 王佩華
出版社: 電子工業
出版在: 2021-06-01
ISBN-13: 9787121412387
ISBN-10: 7121412381
裝訂格式: 平裝
總頁數: 580 頁





內容描述


在當今的數字化經濟時代,微服務架構已經成為公司業務構建的主流架構模式,代表了未來的技術發展趨勢,同時微服務也成為開發者的必備技能。本書從微服務架構的設計理念和方法論切入,從不同角度全面介紹微服務特性、使用場景、組織流程、構建交互、部署交付等軟件工程各個關鍵環節和核心要素,既包含了具體微服務技術的源碼解讀、原理分析,也加入了作者在電信、金融領域積累的真實案例和實踐經驗。全書分為原理篇、實踐篇、進階篇。原理篇涵蓋微服務的概念、採用前提、領域驅動設計、DevOps;實踐篇對Spring Boot、Spring Cloud 治理框架、系統集成、微服務數據架構、微服務交付、微服務的監控等重要技術話題展開深入講解;進階篇主要介紹函數式編程及響應式微服務架構、Kubernetes、雲原生架構生態。本書不僅適合初學者深入理解微服務架構,也可以作為團隊管理者或者架構師進階微服務架構的技術參考手冊。


目錄大綱


原理篇
第1章微服務概述
1.1 微服務架構介紹
1.1.1 背景介紹
1.1.2 微服務的定義
1.1.3 微服務與雲原生
1.2 微服務主要特性
1.2.1 粒度更細的服務
1.2.2 圍繞業務劃分團隊
1.2.3 技術多樣性
1.2.4 去中心化
1.2.5 自動化運維
1.2.6 快速演進
1.3 架構設計哲學
1.3.1 小即是美
1.3.2 做好一件事
1.3.3 快速建立原型
1.3.4 軟件的複利效應
1.3.5 可移植性優先
1.4 小結
第2章微服務的採用前提
2.1 微服務使用場景
2.1.1 項目複雜度
2.1.2 團隊規模
2.1.3 變更頻率
2.1.4 項目類型
2.1.5 遺留系統遷移
2.2 技術與理念
2.2.1 面向服務
2.2.2 底座技術
2.2.3 架構技術
2.2.4 服務監控與治理
2.2.5 容器和自動化技術
2.2.6 雲原生12要素
2.3 康威定律
2.3.1 協作問題
2.3.2 溝通效率問題
2.3.3 組織的演進
2.4 流程管理
2.4.1 敏捷方法論
2.4.2 DevOps轉型
2.4.3 自動化管理工具
2.5 小結
第3章微服務構建
3.1 領域驅動設計
3.1.1 領域驅動設計概述
3.1.2 專注問題域
3.1.3 服務的拆分
3.1.4 界限上下文
3.1.5 領域建模
3.1.6 架構設計
3.2 微服務化改造
3.2.1 技術債務
3.2.2 微服務化改造時機
3.2.3 單體架構的改造模式
3.3 微服務構建進階
3.3.1 軟件構建
3.3.2 微服務構建實踐
3.3.3 微服務架構反模式
3.4 小結
實踐篇
第4章腳手架
4.1 腳手架介紹
4.1.1 什麼是腳手架
4.1.2 為什麼需要腳手架
4.1.3 不要重新造輪子
4.1.4 常用腳手架
4.2 Spring Boot啟動
4.2.1 Spring Boot概述
4.2.2 Spring Boot快速搭建
4.2.3 @SpringBootApplication註解詳解
4.2.4 Spring Boot啟動流程進階
4.2.5 Spring Boot自動裝配機制
4.2.6 Spring Boot功能擴展點詳解
4.3 Spring Boot Starter技術
4.3.1 Spring Boot Starter概述
4.3.2 Spring Boot常用開箱即用Starter
4.3.3 Spring Boot生產就緒與環境配置
4.3.4 Spring Boot安全管理
4.3.5 Spring Boot實現自定義Starter
4.4 Spring Boot Web容器
4.4.1 Spring Boot Web容器配置
4.4.2 Spring Boot嵌入式Web容器原理
4.4.3 Spring Boot的ClassLoader加載機制
4.5 小結
第5章關鍵技術
5.1 服務註冊與發現
5.1.1 服務註冊與發現原理
5.1.2 微服務註冊中心技術選型
5.1.3 Spring Cloud Eureka
5.1.4 Eureka架構與設計原理
5.1.5 Eureka緩存機制
5.1.6 Eureka定制化開發
5.2 服務配置中心
5.2.1 服務配置中心管理
5.2.2 Spring Cloud Config
5.2.3 Config Server配置詳解
5.2.4 Config Server定制化開發
5.3 微服務網關
5.3.1 微服務網關模式
5.3.2 網關的主要功能
5.3.3 網關的技術選型
5.3.4 Spring Cloud Zuul網關
5.3.5 Zuul的主要工作原理
5.3.6 Zuul的插件機制及定制化開發
5.3.7 Zuul的動態路由
5.3.8 Zuul Filter擴展功能實現
5.3.9 Zuul源碼解析
5.4 負載均衡
5.4.1 負載均衡機制
5.4.2 四層與七層負載均衡
5.4.3 負載均衡算法
5.4.4 Spring Cloud Ribbon
5.4.5 Ribbon的核心工作原理
5.4.6 Ribbon源碼解析
5.5 容錯與隔離
5.5.1 隔離機制
5.5.2 微服務的風險
5.5.3 降級保護
5.5.4 限流保護
5.5.5 熔斷保護
5.5.6 超時與重試
5.5.7 Spring Cloud Hystrix容錯框架
5.5.8 Hystrix的核心工作原理
5.5.9 Hystrix源碼解析
5.6 小結
第6章系統集成
6.1 服務集成交互技術
6.1.1 網絡協議
6.1.2 Linux I/O模式
6.1.3 序列化方式
6.2 REST服務集成
6.2.1 REST API
6.2.2 Swagger接口文檔規範
6.2.3 JAX-RS提供REST服務
6.2.4 Feign實現REST調用
6.3 RPC遠程過程調用
6.3.1 RPC框架概述
6.3.2 主流RPC通信框架
6.3.3 Dubbo架構進階
6.3.4 Spring Cloud集成D​​ubbo
6.3.5 Spring Cloud集成gRPC
6.4 MOM異步通信
6.4.1 消息中間件概述
6.4.2 消息中間件的使用場景
6.4.3 常用消息中間件
6.4.4 RabbitMQ消息中間件
6.4.5 Kafka消息中間件
6.4.6 Spring Cloud Stream概述
6.4.7 Stream源碼解析
6.4.8 Stream應用進階
6.5 小結
第7章微服務數據架構
7.1 數據分類及存儲特性
7.1.1 關係數據庫概述
7.1.2 NoSQL數據存儲
7.1.3 Spring Data
7.1.4 使用spring-boot-starter-jdbc訪問MySQL
7.1.5 Spring ORM框架訪問數據庫
7.1.6 Spring Data與NoSQL的集成
7.2 事務管理理論
7.2.1 事務管理概述
7.2.2 ACID理論
7.2.3 一致性理論
7.2.4 CAP理論
7.2.5 BASE理論
7.3 微服務架構的數據一致性
7.3.1 解決方案概覽
7.3.2 兩階段提交模式
7.3.3 TCC補償模式
7.3.4 Saga長事務模式
7.3.5 可靠消息模式
7.4 小結
第8章微服務交付
8.1 軟件交付演進
8.1.1 軟件過程模型
8.1.2 交付演進歷程進階
8.2 微服務如何持續集成交付
8.2.1 配置管理概述
8.2.2 持續集成概述
8.2.3 持續集成Pipeline
8.2.4 持續交付概述
8.2.5 持續交付Pipeline
8.3 基於容器的交付
8.3.1 Docker概述
8.3.2 Docker的原理
8.3.3 Docker構建部署過程
8.3.4 Docker Compose編排服務
8.3.5 Maven插件構建Docker鏡像
8.4 小結
第9章服務監控治理
9.1 監控系統概述
9.1.1 監控系統原理及分類
9.1.2 監控分類
9.1.3 監控關注的對象
9.2 指標型數據監控
9.2.1 指標採集概述
9.2.2 JavaAgent技術
9.2.3 Javaassist技術
9.2.4 Spring Boot Admin監控詳解
9.2.5 Spring Boot集成Prometheus
9.3 日誌監控方案
9.3.1 日誌採集方案
9.3.2 ELK日誌的解決方案
9.3.3 Spring Boot的日誌解決方案
9.4 服務調用鏈技術
9.4.1 APM與調用鏈技術
9.4.2 Dapper與分佈式跟踪原理
9.4.3 Sleuth與Zipkin技術
9.4.4 SkyWalking技術
9.5 小結
進階篇
第10章響應式微服務架構
10.1 響應式編程
10.1.1 響應式編程的動機
10.1.2 響應式宣言
10.1.3 響應式編程詳解
10.1.4 編程範式
10.2 響應式技術框架
10.2.1 響應式編程規範
10.2.2 Java Flow API
10.2.3 RxJava響應式框架
10.2.4 Reactor響應式框架
10.2.5 Vert.X響應式編程
10.2.6 Spring Boot 2響應式編程
10.3 Spring WebFlux框架
10.3.1 Spring WebFlux概述
10.3.2 WebFlux服務器開發
10.3.3 WebClient開發
10.3.4 服務端推送事件
10.3.5 Spring WebFlux的優勢與局限
10.4 Spring Cloud Gateway
10.4.1 Spring Cloud Gateway概述
10.4.2 Spring Cloud Gateway的工作原理
10.4.3 Spring Cloud Gateway的動態路由
10.4.4 Spring Cloud Gateway源碼解析
10.5 小結
第11章Kubernetes容器管理
11.1 Kubernetes的基礎
11.1.1 Kubernetes基本概述
11.1.2 Kubernetes的核心組件
11.2 Kubernetes的設計理念
11.2.1 Kubernetes的設計原則
11.2.2 Kubernetes與微服務
11.2.3 Kubernetes與DevOps
11.3 Spring Cloud與Kubernetes的生態融合
11.3.1 Spring Cloud與Kubernetes各自的優劣勢
11.3.2 Spring Cloud與Kubernetes的融合
11.3.3 Spring Cloud Kubernetes項目
11.4 小結
第12章微服務發展趨勢
12.1 雲原生應用架構
12.1.1 雲原生應用架構進階
12.1.2 Java的雲原生應用優化
12.2 Service Mesh技術
12.2.1 微服務的SideCar模式
12.2.2 Service Mesh的技術前景
12.3 Serverless技術
12.3.1 Serverless的模式
12.3.2 Serverless的技術前景
12.4 總結


作者介紹


王佩華
畢業於天津理工大學,目前就職於京東,任架構師,從事多年金融及電信行業分佈式系統架構的設計及研發管理工作。
多項微服務領域專利的發明人,熱衷於參與開源社區並主導了公司微服務項目的開源和推廣,擅長通信協議設計、分佈式中間件設計、高並發系統架構設計及雲原生架構等。




相關書籍

Learning GraphQL: Declarative Data Fetching for Modern Web Apps (Paperback)

作者 Eve Porcello Alex Banks

2021-06-01

ASP.NET Core 5 and React - Second Edition: Full-stack web development using .NET 5, React 17, and TypeScript 4

作者 Rippon Carl

2021-06-01

Building Games with Flutter: The ultimate guide to creating multiplatform games using the Flame engine in Flutter 3

作者 Teale Paul

2021-06-01