什么是微服务 ?
微服务是一种架构风格,它将一个大型的单体应用拆分成多个小型、独立的服务,这些服务之间通过网络进行通信。每个服务都可以独立开发、部署和扩展,从而提高了系统的可维护性、可扩展性和可靠性。
什么是DDD领域?
领域驱动设计(DDD)是一种软件开发方法,它关注于业务领域的复杂性,并通过建立通用语言、划分领域边界和构建领域模型来解决这些复杂性。DDD 与微服务有着紧密的联系,因为它可以帮助我们从业务领域的角度来划分微服务的边界。
在使用 DDD 来指导微服务拆分时,我们首先需要对业务领域进行建模,抽象出领域模型。然后,我们可以根据领域模型来划分微服务的边界。这样,我们就能够构建出内聚性更高、耦合度更低的微服务架构。
图解领域驱动设计的四重边界:
分而治之:DDD通过规划四重边界,把领域知识做了合理的固化和分层。业务有核心领域和支持域、业务域中又拆分成多个限界上下文(BC),一个BC中又根据领域知识核心与否进行分层,领域层中按照多个业务(子域)的强相关性进行聚合成一个子域。另外,搜索公众号后端架构师后台回复“架构整洁”,获取一份惊喜礼包。
【第一重边界】确定项目的愿景与目标,确定问题空间,确定核心子领域、通用子领域(多个子领域可以复用)、支撑子领域(额外功能,如数据统计、导出报表)
【第二重边界】解决方案空间里的限界上下文就是一道进程隔离层面的物理边界
【第三重边界】每个限界上下文内,使用分层架构划分为:接口层、领域层、应用层、基础设施层之间的最小隔离
【第四重边界】领域层里为了保证各个领域的完整性和一致性,引入聚合的设计作为隔离领域模型的最小单元