系统拆分粒度

简介: https://copyfuture.com/blogs-details/201910291948235480dyaua5tzwp25mk在什么情况下要进行系统拆分,为什么需要拆分在本篇就不进行说明了。

https://copyfuture.com/blogs-details/201910291948235480dyaua5tzwp25mk

在什么情况下要进行系统拆分,为什么需要拆分在本篇就不进行说明了。​

拆分系统,带来的基本性问题就是,拆分到什么粒度是最合适的?

这个问题没有标准答案,也很难不根据具体的场景来回答一个通用的答案。

当然,一个系统要拆分的好,一般是认为系统拆分之后,每个模块或者组件之间的粒度标准需要满足一个原则,也就是高内聚,低耦合。

高内聚是指模块内的功能和逻辑是紧密联系在一起的,低耦合是指模块之间的关联性很小。
例如:
将系统划分为10个模块,一般情况下修改其中的一个模块几乎不会影响到其他的9个模块,这时候我们可以说系统是低耦合的。
同理,每个模块内的功能和逻辑都围绕这一个核心业务流程,很难继续拆解成两个独立系统,我们就可以说系统是高内聚的。

粒度粗细的优劣

总的来说,细粒度拆分的优点有:

(1)服务都能够独立部署

(2)扩容和缩容方便,有利于提高资源利用率

(3)拆得越细,耦合相对会减小

(4)拆得越细,容错相对会更好,一个服务出问题不影响其他服务

(5)扩展性更好

(6)…

细粒度拆分的不足也很明显:

(1)拆得越细,系统越复杂

(2)系统之间的依赖关系也更复杂

(3)运维复杂度提升

(4)监控更加复杂

(5)出问题时定位问题更难

(6)…

系统按照合适的粒度拆分成不同模块的过程,一般称之为模块化。模块化也是软件工程化的基础。
只有在这个基础上才能实现团队合理的分工合作

一个好的系统,从拆分开始

目录
相关文章
|
3月前
|
机器学习/深度学习 算法 安全
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
【图像处理】使用四树分割和直方图移动的可逆图像数据隐藏(Matlab代码实现)
182 2
|
API C++ Windows
[笔记]Windows核心编程《三》进程
[笔记]Windows核心编程《三》进程
238 0
|
网络安全 Python
使用代理ip后访问网站仍然被拒该怎么办
使用代理ip后访问网站仍然被拒该怎么办
462 6
|
监控 Ubuntu Linux
glances工具使用
Glances是跨平台的系统监控工具,用于实时监控CPU、内存、磁盘、网络等资源。安装在Ubuntu/Debian上用`sudo apt-get install glances`,CentOS/RHEL需先装epel-release再用`sudo yum/dnf install glances`。运行`glances`启动本地监控,加`-w`参数启动Web服务以远程查看。支持文件输出、邮件报警等高级功能,详情见官方文档,使用帮助可键入`glances --help`。
474 1
西门子S7-200 SMART如何查看符号名称和绝对地址、符号表相关操作
本篇我们来学习如何在西门子S7-200 SMART的编程软件STEP7-Micro/WIN SMART中查看符号名称和绝对地址。在视图菜单中,单击选择仅以绝对地址、仅按符号名称、同时显示符号名称和绝对地址三种方式来显示参数。
西门子S7-200 SMART如何查看符号名称和绝对地址、符号表相关操作
|
前端开发
那些你不知道的炫酷开关交互效果(12种)1
那些你不知道的炫酷开关交互效果(12种)
231 0
|
自然语言处理 搜索推荐 开发者
高级查询(数组查询和组合查询)| 学习笔记
快速学习高级查询(数组查询和组合查询)。
高级查询(数组查询和组合查询)| 学习笔记
|
1天前
|
数据采集 人工智能 安全