系统拆分粒度 https://copyfuture.com/blogs-details/201910291948235480dyaua5tzwp25mk
在什么情况下要进行系统拆分,为什么需要拆分在本篇就不进行说明了。
拆分系统,带来的基本性问题就是,拆分到什么粒度是最合适的? 这个问题没有标准答案,也很难不根据具体的场景来回答一个通用的答案。 当然,一个系统要拆分的好,一般是认为系统拆分之后,每个模块或者组件之间的粒度标准需要满足一个原则,也就是高内聚,低耦合。 高内聚是指模块内的功能和逻辑是紧密联系在一起的,低耦合是指模块之间的关联性很小。例如: 将系统划分为10个模块,一般情况下修改其中的一个模块几乎不会影响到其他的9个模块,这时候我们可以说系统是低耦合的。同理,每个模块内的功能和逻辑都围绕这一个核心业务流程,很难继续拆解成两个独立系统,我们就可以说系统是高内聚的。 粒度粗细的优劣 总的来说,细粒度拆分的优点有: (1)服务都能够独立部署 (2)扩容和缩容方便,有利于提高资源利用率 (3)拆得越细,耦合相对会减小 (4)拆得越细,容错相对会更好,一个服务出问题不影响其他服务 (5)扩展性更好 (6)… 细粒度拆分的不足也很明显: (1)拆得越细,系统越复杂 (2)系统之间的依赖关系也更复杂 (3)运维复杂度提升 (4)监控更加复杂 (5)出问题时定位问题更难 (6)… 系统按照合适的粒度拆分成不同模块的过程,一般称之为模块化。模块化也是软件工程化的基础。只有在这个基础上才能实现团队合理的分工合作 一个好的系统,从拆分开始