美文网首页
微服拆分因素

微服拆分因素

作者: do_young | 来源:发表于2020-12-14 10:40 被阅读0次

理论上一个限界上下文内的领域模型可以被设计为微服务,但是由于领域建模主要从业务视角出发,没有考虑非业务因素,比如需求变更频率、高性能、安全、团队以及技术异构等因素,而这些非业务因素对于领域模型的系统落地也会起到决定性作用,因此在微服务拆分时我们需要重点考虑它们。我列出了以下主要因素供你参考。

1. 基于领域模型

基于领域模型进行拆分,围绕业务领域按职责单一性、功能完整性拆分。

2. 基于业务需求变化频率

识别领域模型中的业务需求变动频繁的功能,考虑业务变更频率与相关度,将业务需求变动较高和功能相对稳定的业务进行分离。这是因为需求的经常性变动必然会导致代码的频繁修改和版本发布,这种分离可以有效降低频繁变动的敏态业务对稳态业务的影响。

3. 基于应用性能

识别领域模型中性能压力较大的功能。因为性能要求高的功能可能会拖累其它功能,在资源要求上也会有区别,为了避免对整体性能和资源的影响,我们可以把在性能方面有较高要求的功能拆分出去。

4. 基于组织架构和团队规模

除非有意识地优化组织架构,否则微服务的拆分应尽量避免带来团队和组织架构的调整,避免由于功能的重新划分,而增加大量且不必要的团队之间的沟通成本。拆分后的微服务项目团队规模保持在10~12人左右为宜。

5. 基于安全边界

有特殊安全要求的功能,应从领域模型中拆分独立,避免相互影响。

6. 基于技术异构等因素

领域模型中有些功能虽然在同一个业务域内,但在技术实现时可能会存在较大的差异,也就是说领域模型内部不同的功能存在技术异构的问题。由于业务场景或者技术条件的限制,有的可能用.NET,有的则是Java,有的甚至大数据架构。对于这些存在技术异构的功能,可以考虑按照技术边界进行拆分。

相关文章

  • 微服拆分因素

    理论上一个限界上下文内的领域模型可以被设计为微服务,但是由于领域建模主要从业务视角出发,没有考虑非业务因素,比如需...

  • 微服务拆分实践

    说到微服务就不得不说拆分了,服务拆分要有一些指导依据。 拆分依据 微服务的理论知识有大量的分享,这里是我对微服务理...

  • 微服务的拆分规范和原则

    微服务的拆分规范和原则 拆分方案 压力模型拆分 业务模型拆分--主链路拆分--领域模型拆分--用户群体拆分--前后...

  • 01、DDD和微服务的关系

    软件架构模式的演进 微服务设计和拆分的困境 1、微服务的粒度应该多大呀?2、微服务到底应该如何拆分和设计呢?3、微...

  • 微服务一站式解决方案Spring Cloud

    什么是微服务架构 我们知道分布式强调系统的拆分,其实微服务也是强调系统的拆分,微服务架构属于分布式架构的范畴; 并...

  • springcloud微服务架构

    什么是微服务架构 我们知道分布式强调系统的拆分,其实微服务也是强调系统的拆分,微服务架构属于分布式架构的范畴; 并...

  • 对SpringCloud微服务架构的理解

    微服务 微服务 将all in one的项目拆分,可以按业务拆分成独立的模块等,降低模块与模块之间的耦合性,每个微...

  • 架构师进阶实战随堂笔记五

    场景五:微服务中的服务划分问题 微服务拆分原则、方法与最佳实践 目录 应该怎样去拆分服务呢? 基本原则: 低耦合,...

  • 领域驱动设计读书笔记-术语介绍

    本文为极客时间《DDD实战》的读书笔记 DDD-基础 DDD基础介绍 微服务设计和拆分的困境 对于微服务的拆分粒度...

  • 目录

    前言 微服务前世今生 微服务拆分技术 微服务合并技术 微服务架构一致性专题 微服务架构部署专题 微服务架构运维专题

网友评论

      本文标题:微服拆分因素

      本文链接:https://www.haomeiwen.com/subject/yyfvgktx.html