微服务架构设计模式 | 第1章 逃离单体地狱

2021-08-05  本文已影响0人  多氯环己烷

前言

这是一本关于微服务架构设计方面的书,这是本人阅读的学习笔记。首先对一些符号做些说明:

()为补充,一般是书本里的内容;
[]符号为笔者笔注;


1. 迈向单体地狱的漫长旅程

在书中,作者以Food to Go(下简称FTGO)业务分析单体应用程序的优缺点。

1.1 FTGO应用程序单体架构

FTGO单体

1.2 单体架构的好处

1.3 FTGO应用程序单体地狱

FTGO单体地狱

1.4 什么是单体地狱

2. 为什么本书与你有关

什么人适合阅读:软件开发人员、架构师、CTO或工程研发副总裁;或者所负责的应用程序超出单体架构所能支撑的范围。

2.1 阅读门槛

3. 你会在本书中学到什么

读完本书能理解与掌握的知识点与技术点。

3.1 需要重点关注的知识

3.2 其他技术

4. 拯救之道:微服务架构

主要介绍人微服务架构的一些定义与基本特性。

4.1 扩展应用程序的三个维度(扩展立方体)[微服务的定义]

扩展立方模型

4.2 微服务的基本特性

4.3 FTGO的微服务架构

将Y轴分解应用于FTGO应用程序,将得到下图:

FTGO的微服务架构

可以看出该模型的特点有:

4.4 微服务架构与SOA的异同

微服务架构与SOA的异同
相似点:

不同点:

5. 微服务架构的好处与弊端

5.1 微服务架构的好处

5.2 微服务架构的弊端

6. 微服务架构的模式语言

一个用来表述多种架构设计的选择方案,并且可用来改进决策的方式,就是使用模式语言。微服务架构的模式是微服务架构设计的重难点,也是后续章节的重难点。

6.1 一些概念(模式、模式语言等)

6.2 常用的模式结构包括三个重要部分

以可视化方式表示模式间的关系

6.3 微服务架构模式语言

微服务架构模式语言的概括性视图
上图有四个模式组

6.4 微服务的主要几组模式【重点】

服务拆分相关模式:

【第2章重点介绍】将系统拆分本质上是一门艺术,但可以有一定策略,如下图所示:

服务拆分相关策略

通信相关模式:

【第3与第8章介绍】进程间通信(IPC)是分布式系统的重要组成部分,其包括:

实现事务管理的数据一致性相关模式:

【第4~6章介绍】使用Saga模式确保数据一致性,而不是两步式提交(2PC)方式。下图展示数据一致性相关模式:

数据一致性相关模式

在微服务架构中查询数据的相关模式:

【第7章介绍】可以使用API组合模式,逐一调用服务的API,然后将所有的返回聚合在一起,如下图所示:

查询数据的相关模式

服务部署相关模式:

【第12章介绍】往往需要一个高度自动化部署的基础设施,一个部署平台(可以是UI图形化界面、命令行等),如下图所示:

请部署微服务的几种模式

可观测性相关模式:

【第11章介绍】指弄清应用在运行时的一些行为,同时根据错误的请求或高延迟等故障进行诊断排错。以下模式可用来设计具备可观测性的服务:

实现服务自动化测试的相关模式:

【第9~10章介绍】需要注意测试不同服务是否协同工作。以下通过单独测试服务简化测试的模式:

解决基础设施和边界问题的相关模式:

【第11章介绍】每个服务都必须实现许多跟基础设施相关的功能,此外必须实现外部化配置模式。在开发新服务时可以使用微服务基底模式解决一些基础设施的相关问题。

安全相关模式:

【第11章介绍】在用户身份验证工作中常用访问令牌模式,用户信息传递后的服务可以验证令牌获取用户信息。

7. 微服务之上:流程和组织

架构不是唯一需要关注的领域,还必须思考流程与组织。

7.1 架构、流程与组织间的关系

请添加图片描述

8. 本章小结


最后

\color{blue}{\rm\small{新人制作,如有错误,欢迎指出,感激不尽!}}

\color{blue}{\rm\small{欢迎关注我,并与我交流!}}

\color{blue}{\rm\small{如需转载,请标注出处!}}

上一篇 下一篇

猜你喜欢

热点阅读