微服务架构设计模式 | 第2章 服务的拆分策略

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

前言

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

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


1. 微服务架构到底是什么

1.1 软件架构的4+1视图

软件架构的4+1视图模型

1.2 应用程序的两个层面需求

1.3 分层式架构风格

流行的三层架构是应用于逻辑视图的分层架构,如下:

其弊端是:

1.4 关于架构风格的六边形

六边形架构是分层架构风格的替代品 [解决分层架构的弊端],六边形架构选择以业务逻辑为中心的方式组织逻辑视图。

六边形架构

图解:

好处:

1.5 什么是服务

服务是一个单一的、可独立部署的软件组件,它实现了一些有用的功能。

服务的外部视图

图解:

1.6 微服务架构的架构风格

2 为应用程序定义微服务架构

定义架构是一项艺术而非技术;在现实世界中,这是一个不断迭代和持续创新的过程。

2.1 定义应用程序架构的三步式流程

定义应用程序架构的三步式流程

2.2 第一步:识别系统操作

抽象的领域模型与系统操作能够回答这个应用“做什么”这一问题,有助于推动应用程序的架构设计。

识别系统操作

2.2.1 识别系统操作的步骤与一些事项:

2.3 第二步:定义服务

2.3.1 根据业务能力进行服务拆分

拆分步骤:

2.3.2 根据子域进行服务拆分

又称:基于领域驱动设计分解应用程序的方法

一些概念:

拆分步骤:

FTGO应用程序从子域到服务的映射

2.3.3 拆分的指导原则

受启发于面型对象设计原则。

2.3.4 拆分单体应用为服务的难点

2.3.5 上帝类阻碍了拆分

在定义微服务架构时,必须识别并消除上帝类。

问题描述:在FTGO应用程序中,Order类与订单处理、餐馆订单管理、送餐与付款等服务有关,具有复杂的状态模型,如下图所示;

Order上帝类

解决方法

Delivery Service的领域模型
Kitchen Service的领域模型 Order Service的领域模型

2.4 第三步:定义服务API

2.4.1 定义服务API的步骤与事项

3. 本章小结


最后

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读