微服务与领域驱动设计:构建高内聚低耦合系统的指南
目录一、微服务架构模型的对比与选择(一)整洁架构(二)六边形架构(三)DDD 分层架构1.用户接口层2.应用层3.领域层4.基础层5.从三层架构向 DDD 分层架构演进(四)三种微服务架构模型的对比和分析二、领域驱动设计分层架构与微服务代码模型(一)代码模型总目录结构1.微服务一级目录结构2.用户接口层目录结构、职能和代码形态3.应用层目录结构、职能和代码形态4.领域层目录结构、职能和代码形态5.基础层层目录结构、职能和代码形态(二)应用层的领域对象分析1.实体方法的封装2.领域服务的组合和封装3.应用服务的组合和编排(三)领域层的领域对象分析1.设计实体2.找出聚合根3.设计值对象4.设计领域事件5.设计领域服务6.设计仓储(四)代码模型强调内容第一点:聚合之间的代码边界一定要清晰。第二点:你一定要有代码分层的概念。三、正确理解微服务的边界(一)逻辑边界(二)物理边界(三)代码边界四、正确认识服务和数据在微服务各层的协作(一)正确认识服务的协作1. 服务的类型2. 服务的调用(三类主要场景)微服务内跨层服务调用微服务之间的服务调用领域事件驱动3. 服务的封装与组合(二)正确认识服务数据的协作1.基础层数据协作2.领域层数据协作3.应用层数据协作4.用户接口层数据协作5.前端应用数据协作参考书籍、文献和资料干货分享,感谢您的阅读!领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。微服务拆分困境产生的根本原因:不知道业务或者微服务的边界到底在什么地方。DDD核心思想:通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。对于领域驱动设计的学习做的总结主要写三篇博客,主要包括三部分:基本理论总结与分析、架构分析与代码设计、具体应用设计分析,主要参考的资料为极客时间的欧创新架构师的《DDD》实战,其他参考书籍在文章下方的参考书籍中。本次主要总结DDD架构分析与代码设计:一、微服务架构模型的对比与选择微服务架构模型现有的选择模型包括:整洁架构、CQRS 和六边形架构、DDD 分层架构等。(注:CQRS架构之前博客中有讲,本次不做分析)每种架构模式虽然提出的时代和背景不同,但其核