3個月吃透騰訊T4推薦的528頁高可用可伸縮微服務架構,成功入職新浪

前言

本文經過 Dubbo、Spring Cloud、Service Mesh 等技術構建微服務體系,並深刻淺出的介紹了微服務架構發展歷程、領域驅動設計、穩定性保證的經常使用手段、分佈式事務的一致性方案,以及經過大量的案例探討微服務落地方案,例如雙活體系建設,分佈式監控,微服務編排,百億流量微服務網關的設計與實現,基於支付場景下的微服務改造等,展現了實現微服務架構的完整藍圖,並讓讀者瞭解到如何藉助於微服務來加強和重構現有的遺留系統。spring

無論你是還沒聽過或者剛接觸過微服務的新手,仍是正在嘗試藉助微服務解放生產力的開發人員或者運維人員,或者是立志於構建高可用可伸縮的微服務體系的架構師,均可閱讀,對讀者必有裨益。數據庫

3個月吃透阿里P8推薦的528頁高可用可伸縮微服務架構,成功入螞蟻

 

目錄

第1章 微服務架構概述 1
1.1 什麼是架構 1
1.2 幾個相關概念 3
1.3 從軟件的生命週期看架構設計 7
1.4 架構的形式與特色 9
1.5 架構的目標與方法 13
1.6 架構的不一樣風格 18
第2章 微服務領域驅動設計 30
2.1 領域驅動設計 31
2.1.1 領域驅動設計概覽 31
2.1.2 問題域與解決方案域 34
2.1.3 限界上下文 35
2.1.4 上下文映射 40
2.1.5 領域架構 43
2.2 微服務的設計 48
2.2.1 限界上下文的邊界 48
2.2.2 限界上下文即微服務 51
2.2.3 識別限界上下文 53
2.2.4 微服務之間的協做 59
2.3 小結 63
第3章 Apache Dubbo框架的原理與實現 64
3.1 Dubbo框架的選型與使用 64
3.1.1 Dubbo框架的選型 64
3.1.2 Dubbo框架的使用 65
3.2 Dubbo框架的原理分析 70
3.2.1 整體架構分析 70
3.2.2 Dubbo Bean的加載 73
3.2.3 Dubbo Extension機制 77
3.2.4 Dubbo消費端 91
3.2.5 Dubbo服務端 126
3.2.6 Dubbo的通訊機制 144
3.3 基於Dubbo的自動化Mock系統 165
3.3.1 Mock模擬系統的產生 166
3.3.2 Dubbo Mock的使用 167
3.3.3 Dubbo Mock的原理解析 168
3.3.4 自動化Mock系統的實現 170
第4章 Spring Boot/Spring Cloud實踐 177
4.1 Spring Boot原理剖析 178
4.1.1 Spring Boot Quick Start 178
4.1.2 Spring Boot之SpringApplication 180
4.1.3 spring-boot-loaded模塊分析 186
4.1.4 spring-boot-autoconfigure模塊分析 190
4.1.5 Spring Boot Conditional註解分析 195
4.2 Dubbo Spring Boot Starter 198
4.2.1 Dubbo Spring Boot Starter簡介 198
4.2.2 Dubbo Initializr及sample 198
4.2.3 dubbo-spring-boot-autoconfigure模塊 201
4.2.4 dubbo-spring-boot-actuator模塊 204
4.3 Spring Cloud棧 211
4.3.1 爲何微服務架構須要Spring Cloud 212
4.3.2 Spring Cloud技術棧總覽 214
4.3.3 spring-cloud-scaffold基礎庫集合 215
4.4 基於Maven Archetype的腳手架 239
4.4.1 Maven Archetype 239
4.4.2 腳手架的搭建 240
4.4.3 生成腳手架 247
第5章 微服務穩定性保證的經常使用手段 250
5.1 微服務的穩定性 250
5.2 高可用 250
5.2.1 限流原理與實現 250
5.2.2 斷路器原理與實現 256
5.2.3 超時與重試 260
5.3 高併發 262
5.3.1 異步 263
5.3.2 緩存 270
5.4 總結 272
第6章 微服務下如何保證事務的一致性 273
6.1 從本地事務到分佈式事務的演變 273
6.2 強一致性解決方案 276
6.2.1 二階段提交協議 276
6.2.2 三階段提交協議 278
6.3 最終一致性解決方案 280
6.3.1 TCC模式 280
6.3.2 補償模式 285
6.3.3 可靠事件模式 286
6.4 開源項目的分佈式事務實現解讀 288
6.4.1 Apache RocketMQ 288
6.4.2 ServiceComb 289
第7章 百億流量微服務網關的設計與實現 293
7.1 API網關概述 293
7.1.1 分佈式服務架構、微服務架構與 API 網關 293
7.1.2 API網關的定義、職能與關注點 296
7.1.3 API網關的分類與技術分析 298
7.2 開源網關的分析與調研 300
7.2.1 常見的開源網關介紹 300
7.2.2 四大開源網關的對比分析 308
7.2.3 開源網關的技術總結 309
7.3 百億流量交易系統API網關設計 310
7.3.1 百億流量交易系統API網關的現狀和麪臨問題 310
7.3.2 業務網關的設計與最佳實踐 313
第8章 微服務編排 317
8.1 Netflix Conductor 317
8.2 Netflix Conductor的架構 319
8.3 Conductor的使用案例 320
8.4 Netflix Conductor源碼分析 328
8.4.1 Client層源碼分析 330
8.4.2 Server端源碼分析 337
8.4.3 core端源碼分析 344
第9章 微服務數據抽取與統計 356
9.1 案例小故事 356
9.2 數據倉庫概述 358
9.2.1 什麼是數據倉庫 358
9.2.2 數據倉庫架構 360
9.2.3 數據倉庫建模方法 361
9.2.4 數據抽取、轉換和加載 361
9.2.5 數據統計 362
9.3 數據倉庫工具Hive 362
9.3.1 安裝Hive 364
9.3.2 Hive數據庫 366
9.3.3 Hive表 367
9.4 使用Sqoop抽取數據 369
9.4.1 安裝Sqoop 370
9.4.2 將MySQL表數據導入Hive表 372
9.5 ETL做業調度 375
第10章 微服務雙活體系建設 377
10.1 系統高可用 377
10.2 雙活數據中心 379
10.2.1 單機房部署 379
10.2.2 雙機房部署 380
10.2.3 基於支付場景的雙活體系建設 383
第11章 基於支付場景下的微服務改造與性能優化 399
11.1 支付場景的介紹 399
11.2 支付業務建模和服務劃分 400
11.3 支付場景下微服務架構的詳解與分析 402
11.3.1 業務架構分析 402
11.3.2 技術平臺詳解 404
11.4 從代碼層面提高微服務架構的性能 407
11.4.1 從代碼和設計的角度看 407
11.4.2 從總體架構的角度看 418
11.5 微服務架構中常見的一些故障分析技巧 421
第12章 遺留系統的微服務架構改造 426
12.1 代碼分層結構的轉變 426
12.2 遺留系統的債券與思考 430
12.3 從單體系統拆分服務的方法論 431
12.4 遺留系統的微服務架構改造 436
12.4.1 從代碼重構開始 436
12.4.2 拆分服務須要面向服務進行架構設計 437
12.4.3 改造是一個漸進的過程 437
12.4.4 單元測試是基石 440
12.4.5 面向失敗的設計 440
12.4.6 先後端分離 441
12.4.7 共享現有數據庫 441
12.4.8 灰度發佈的必要性 442
12.4.9 日誌聚合與全鏈路監控 442
第13章 Service Mesh詳解 443
13.1 Service Mesh是什麼 443
13.2 Service Mesh的背景 443
13.3 Service Mesh介紹 444
13.3.1 Service Mesh架構 444
13.3.2 Service Mesh能作什麼 445
13.4 Service Mesh的價值 446
13.5 Service Mesh現狀 447
13.6 Service Mesh存在的問題 448
13.7 Istio詳解 449
13.7.1 Istio架構 449
13.7.2 數據平面 450
13.7.3 控制平面 455
13.7.4 Isito案例 458
13.8 Service Mesh展望 461
第14章 微服務監控實戰 463
14.1 APM原理與應用 464
14.1.1 什麼是APM 464
14.1.2 APM監控點 464
14.1.3 APM深刻解析 464
14.2 Prometheus監控系統介紹 492
14.2.1 Prometheus的主要特色 493
14.2.2 Prometheus的架構及組件介紹 493
14.2.3 Prometheus的安裝 494
14.2.4 使用Prometheus對MySQL進行監控 498
14.2.5 Prometheus的告警機制 501後端

內容簡介

本書共分爲十四章:緩存

第一章:微服務概述性能優化

從軟件架構的發展歷程講起,分別對單體架構、SOA架構和微服務架構的演進過程作了深刻淺出的講解,同時也深刻介紹了微服務架構的特色,本章以宏觀的視角爲讀者打開微服務的大門。架構

第二章:微服務領域驅動設計併發

本章介紹了領域驅動設計是什麼,常見的領域架構有哪些,如何將領域驅動應用到微服務中,以及如何使用領域驅動進行合理的服務劃分等,幫助讀者在正式學習微服務前修煉內功。框架

第三章:Dubbo原理與實現前後端分離

目前Dubbo已經被阿里巴巴技術團隊從新維護而且獲得了大力的發展和推廣,使用Dubbo依然能夠很好的進行微服務建設,本章較爲深刻的講解了Dubbo的使用和技巧,以及經過源碼的深刻分析可以讓讀者對Dubbo的原理實現有一個全面的認識。運維

第四章:Spring Cloud實戰案例

Spring Boot/Cloud是目前較爲流行的微服務框架,本章以大量的實戰案例爲讀者講解如何才能應用好Spring Cloud框架,以及如何避免在使用過程當中遇到的坑。

第五章:微服務穩定性保證經常使用手段

當業務發展愈來愈快,規模也愈來愈大的狀況下,咱們所面臨的就是如何在服務愈來愈多的狀況下保證微服務架構的穩定性,本章帶領讀者逐步揭開保障穩定性的經常使用技巧和手段。

第六章:微服務下事務的一致性保證

本章介紹了從本地事務到分佈式事務的演變,深刻分析了微服務在強一致性場景和最終一致性場景下的解決方案,探討了二階段提交協議、三階段提交協議、TCC 模式、補償模式、可靠事件模式等。同時,對開源項目的分佈式事務進行解讀,包括 RocketMQ 和 ServiceComb。

第七章:微服務億級網關設計

本章從百億流量交易系統微服務網關(API Gateway)的現狀和麪臨問題出發,闡述微服務架構與 API 網關的關係,理順流量網關與業務網關的脈絡,帶來最全面的 API 網關知識與經驗。

第八章:微服務編排

本章以Netflix Conductor框架爲核心,從框架的使用和原理深刻介紹了什麼是微服務編排,爲微服務執行復雜的業務邏輯提供了一種新的思路。

第九章:微服務統計與數據抽取方案

在微服務架構下,服務必將愈來愈多,在這各狀況下如何進行數據統計和分析將變得很是困難,本章將深刻講解如何從不一樣服務的數據庫中抽取數據到統一的大數據平臺中,幫忙使用者更方便的進行數據的統計。

第十章:微服務雙活體系建設

在企業發展規模愈來愈大的狀況下,用戶對系統的穩定性要求也愈來愈高,那麼單機房佈署勢必成爲發展的瓶頸,本章將帶領讀者從零開始以實際案例出發進行同城雙活的建設。

第十一章:基於支付場景下的微服務改造和性能優化

本章從實際的案例出發,在具體的支付業務場景下,從一個新項目開始逐步講解如何利用領域驅動劃分服務,如何利用微服務框架進行服務治理,以及項目完成後怎樣提高微服務架構的性能。

第十二章:遺留系統的微服務改造

本章介紹了遺留系統的微服務架構改造,梳理了代碼分層結構的轉變,提出一個新的代碼分層思路來應對微服務的流行與普及,並深刻思考了遺留系統的債券,深刻探討單體系統拆分服務的方法論。同時,對遺留系統的微服務架構改造的解決方案給出 9 個切實可行的核心實踐思路。

第十三章:Service Mesh的入門與案例

隨着微服務的持續發展,下一代微服務架構已然出現,本章將深刻介紹Service Mesh發展歷程,以及結合具體案例帶領讀者使用Istio進行具體實踐。

第十四章:微服務監控實戰

本章重點介紹APM的原理,從零開始開發APM監控系統,還深刻介紹Prometheus的安裝和原理,以及如何使用Prometheus進行監控和預警。

3個月吃透阿里P8推薦的528頁高可用可伸縮微服務架構,成功入螞蟻

 

這份【 高可用可伸縮微服務架構:基於Dubbo、Spring Cloud和ServiceMesh】共有528頁,已經整理打包好,須要完整版內容的朋友,能夠點贊此文關注小編,下方直通車便可免費獲取

 

總結

本文的每個章節都是相關領域的專家通過多年的技術積累提煉而成,秉承以理論爲基礎,以大量企業實戰案例爲核心,深刻全面的介紹了微服務架構的實施方法以及在實施過程當中所遇到的問題和解決方案,是一本內容詳實、「可落地」的理論實踐相結合的技術書籍。