高可用可伸縮微服務架構:基於Dubbo、Spring Cloud和Service Mesh | 被動收入的投資秘訣 - 2024年7月

高可用可伸縮微服務架構:基於Dubbo、Spring Cloud和Service Mesh

作者:程超
出版社:電子工業
出版日期:2019年05月01日
ISBN:9787121362132
語言:繁體中文

近年來微服務架構已經成為大規模分散式架構的主流技術,越來越多的公司已經或開始轉型為微服務架構。本書不以某一種微服務框架的使用為主題,而是對整個微服務生態進行系統性的講解,並結合工作中的大量實戰案例為讀者呈現一本讀完即可落地的工具書。
 
書中的理論部分介紹了微服務架構的發展歷程,深入通俗地講解了領域驅動設計,幫助讀者更好地利用DDD來建模和劃分服務;穩定性保證的常用手段和分散式事務的一致性方案這兩章凝聚了作者多年的積累和思考,相信讀者看完後會有不一樣的感觸和收穫;書中實戰部分的內容非常豐富,以專案為基礎,逐層介紹常見的Dubbo、SpringCloud和ServiceMesh框架的具體使用方法,並對實現原理進行剖析;書中還以具體案例全面介紹了微服務雙活體系建設、微服務監控與告警、微服務編排、百億流量微服務閘道的設計與實現,以及基於支付場景下的微服務改造等,並讓讀者瞭解如何借助微服務來增強和重構現有的遺留系統。

網名小程故事多,現任某公司高級架構師,12年Java研發經驗,8年技術管理和架構經驗,熟悉支付和電商領域,擅長微服務生態建設和運維監控,對 Dubbo、Spring Cloud和gRPC等微服務框架有深入研究,幫助多家公司進行過微服務建設和改造。合著作品《深入分散式緩存》,阿裡雲MVP、雲棲社區外部專家、 Codingfly社區特聘技術專家、CSDN博主專家。

第1章 微服務架構概述
1.1 什麼是架構
1.2 幾個相關概念
1.3 從軟體的生命週期看架構設計
1.4 架構的形式與特點
1.5 架構的目標與方法
1.6 架構的不同風格
第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.3 小結
第3章 Apache Dubbo框架的原理與實現
3.1 Dubbo框架的選型與使用
3.1.1 Dubbo框架的選型
3.1.2 Dubbo框架的使用
3.2 Dubbo框架的原理分析
3.2.1 總體架構分析
3.2.2 Dubbo Bean的載入
3.2.3 Dubbo Extension機制
3.2.4 Dubbo消費端
3.2.5 Dubbo服務端
3.2.6 Dubbo的通信機制
3.3 基於Dubbo的自動化Mock系統
3.3.1 Mock類比系統的產生
3.3.2 Dubbo Mock的使用
3.3.3 Dubbo Mock的原理解析
3.3.4 自動化Mock系統的實現
第4章 Spring Boot/Spring Cloud實踐
4.1 Spring Boot原理剖析
4.1.1 Spring Boot Quick Start
4.1.2 Spring Boot之SpringApplication
4.1.3 spring-boot-loaded模組分析
4.1.4 spring-boot-autoconfigure模組分析
4.1.5 Spring Boot Conditional注解分析
4.2 Dubbo Spring Boot Starter
4.2.1 Dubbo Spring Boot Starter簡介
4.2.2 Dubbo Initializr及sample
4.2.3 dubbo-spring-boot-autoconfigure模組
4.2.4 dubbo-spring-boot-actuator模組
4.3 Spring Cloud棧
4.3.1 為什麼微服務架構需要Spring Cloud
4.3.2 Spring Cloud技術棧總覽
4.3.3 spring-cloud-scaffold基礎庫集合
4.4 基於Maven Archetype的腳手架
4.4.1 Maven Archetype
4.4.2 腳手架的搭建
4.4.3 生成腳手架
第5章 微服務穩定性保證的常用手段
5.1 微服務的穩定性
5.2 高可用
5.2.1 限流原理與實現
5.2.2 斷路器原理與實現
5.2.3 超時與重試
5.3 高併發
5.3.1 非同步
5.3.2 緩存
5.4 總結
第6章 微服務下如何保證事務的一致性
6.1 從本地事務到分散式事務的演變
6.2 強一致性解決方案
6.2.1 二階段提交協議
6.2.2 三階段提交協議
6.3 最終一致性解決方案
6.3.1 TCC模式
6.3.2 補償模式
6.3.3 可靠事件模式
6.4 開源專案的分散式事務實現解讀
6.4.1 Apache RocketMQ
6.4.2 ServiceComb
第7章 百億流量微服務閘道的設計與實現
7.1 API閘道概述
7.1.1 分散式服務架構、微服務架構與 API 閘道
7.1.2 API閘道的定義、職能與關注點
7.1.3 API閘道的分類與技術分析
7.2 開源閘道的分析與調研
7.2.1 常見的開源閘道介紹
7.2.2 四大開源閘道的對比分析
7.2.3 開源閘道的技術總結
7.3 百億流量交易系統API閘道設計
7.3.1 百億流量交易系統API閘道的現狀和面臨問題
7.3.2 業務閘道的設計與最佳實踐
第8章 微服務編排
8.1 Netflix Conductor
8.2 Netflix Conductor的架構
8.3 Conductor的使用案例
8.4 Netflix Conductor源碼分析
8.4.1 Client層源碼分析
8.4.2 Server端源碼分析
8.4.3 core端源碼分析
第9章 微服務資料抽取與統計
9.1 案例小故事
9.2 資料倉庫概述
9.2.1 什麼是資料倉庫
9.2.2 資料倉庫架構
9.2.3 資料倉庫建模方法
9.2.4 資料抽取、轉換和載入
9.2.5 資料統計
9.3 資料倉庫工具Hive
9.3.1 安裝Hive
9.3.2 Hive資料庫
9.3.3 Hive表
9.4 使用Sqoop抽取資料
9.4.1 安裝Sqoop
9.4.2 將MySQL表數據導入Hive表
9.5 ETL作業調度
第10章 微服務雙活體系建設
10.1 系統高可用
10.2 雙活資料中心
10.2.1 單機房部署
10.2.2 雙機房部署
10.2.3 基於支付場景的雙活體系建設
第11章 基於支付場景下的微服務改造與性能優化
11.1 支付場景的介紹
11.2 支付業務建模和服務劃分
11.3 支付場景下微服務架構的詳解與分析
11.3.1 業務架構分析
11.3.2 技術平臺詳解
11.4 從代碼層面提升微服務架構的性能
11.4.1 從代碼和設計的角度看
11.4.2 從整體架構的角度看
11.5 微服務架構中常見的一些故障分析技巧
第12章 遺留系統的微服務架構改造
12.1 代碼分層結構的轉變
12.2 遺留系統的債券與思考
12.3 從單體系統拆分服務的方法論
12.4 遺留系統的微服務架構改造
12.4.1 從代碼重構開始
12.4.2 拆分服務需要面向服務進行架構設計
12.4.3 改造是一個漸進的過程
12.4.4 單元測試是基石
12.4.5 面向失敗的設計
12.4.6 前後端分離
12.4.7 共用現有資料庫
12.4.8 灰度發佈的必要性
12.4.9 日誌聚合與全鏈路監控
第13章 Service Mesh詳解
13.1 Service Mesh是什麼
13.2 Service Mesh的背景
13.3 Service Mesh介紹
13.3.1 Service Mesh架構
13.3.2 Service Mesh能做什麼
13.4 Service Mesh的價值
13.5 Service Mesh現狀
13.6 Service Mesh存在的問題
13.7 Istio詳解
13.7.1 Istio架構
13.7.2 數據平面
13.7.3 控制平面
13.7.4 Isito案例
13.8 Service Mesh展望
第14章 微服務監控實戰
14.1 APM原理與應用
14.1.1 什麼是APM
14.1.2 APM監控點
14.1.3 APM深入解析
14.2 Prometheus監控系統介紹
14.2.1 Prometheus的主要特點
14.2.2 Prometheus的架構及組件介紹
14.2.3 Prometheus的安裝
14.2.4 使用Prometheus對MySQL進行監控
14.2.5 Prometheus的告警機制


相關書籍