3个月吃透阿里P8推荐的528页高可用可伸缩微服务架构,成功入蚂蚁

前言

本文通过 Dubbo、Spring Cloud、Service Mesh 等技术构建微服务体系,并深入浅出的介绍了微服务架构发展历程、领域驱动设计、稳定性保证的常用手段、分布式事务的一致性方案,以及通过大量的案例探讨微服务落地方案,例如双活体系建设,分布式监控,微服务编排,百亿流量微服务网关的设计与实现,基于支付场景下的微服务改造等,展示了实现微服务架构的完整蓝图,并让读者了解到如何借助于微服务来增强和重构现有的遗留系统。

不管你是还没听过或者刚接触过微服务的新手,还是正在尝试借助微服务解放生产力的开发人员或者运维人员,或者是立志于构建高可用可伸缩的微服务体系的架构师,都可阅读,对读者必有裨益。

目录

第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进行监控和预警。

这份【 高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和ServiceMesh】共有528页,已经整理打包好,需要完整版内容的朋友,可以移步主页来获取!!

总结

本文的每一个章节都是相关领域的专家经过多年的技术积累提炼而成,秉承以理论为基础,以大量企业实战案例为核心,深入全面的介绍了微服务架构的实施方法以及在实施过程中所遇到的问题和解决方案,是一本内容详实、“可落地”的理论实践相结合的技术书籍。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容