DDD实战课
欧创新
人保高级架构师
立即订阅
4865 人已学习
课程目录
已完结 23 讲
0/2登录后,你可以任选2讲全文学习。
开篇词 (1讲)
开篇词 | 学好了DDD,你能做什么?
免费
基础篇 (5讲)
01 | 领域驱动设计:微服务设计为什么要选择DDD?
02 | 领域、子域、核心域、通用域和支撑域:傻傻分不清?
03 | 限界上下文:定义领域边界的利器
04 | 实体和值对象:从领域模型的基础单元看系统设计
05 | 聚合和聚合根:怎样设计聚合?
进阶篇 (6讲)
06 | 领域事件:解耦微服务的关键
07 | DDD分层架构:有效降低层与层之间的依赖
08 | 微服务架构模型:几种常见模型的对比和分析
09 | 中台:数字转型后到底应该共享什么?
10 | DDD、中台和微服务:它们是如何协作的?
答疑:有关3个典型问题的讲解
实战篇 (10讲)
11 | DDD实践:如何用DDD重构中台业务模型?
12 | 领域建模:如何用事件风暴构建领域模型?
13 | 代码模型(上):如何使用DDD设计微服务代码模型?
14 | 代码模型(下):如何保证领域模型与代码模型的一致性?
15 | 边界:微服务的各种边界在架构演进中的作用?
16 | 视图:如何实现服务和数据在微服务各层的协作?
17 | 从后端到前端:微服务后,前端如何设计?
18 | 知识点串讲:基于DDD的微服务设计实例
19 | 总结(一):微服务设计和拆分要坚持哪些原则?
20 | 总结(二):分布式架构关键设计10问
结束语 (1讲)
结束语 | 所谓高手,就是跨过坑和大海!
DDD实战课
登录|注册

15 | 边界:微服务的各种边界在架构演进中的作用?

欧创新 2019-11-18
你好,我是欧创新。
前几讲我们已经介绍过了,在用 DDD 进行微服务设计时,我们可以通过事件风暴来确定领域模型边界,划定微服务边界,定义业务和系统运行边界,从而保证微服务的单一职责和随需而变的架构演进能力。
那重点落到边界的时候,总结一下就是,微服务的设计要涉及到逻辑边界、物理边界和代码边界等等。
那么这些边界在微服务架构演进中到底起到什么样的作用?我们又该如何理解这些边界呢?这就是我们今天重点要解决的问题。

演进式架构

在微服务设计和实施的过程中,很多人认为:“将单体拆分成多少个微服务,是微服务的设计重点。”可事实真的是这样吗?其实并非如此!
Martin Fowler 在提出微服务时,他提到了微服务的一个重要特征——演进式架构。那什么是演进式架构呢?演进式架构就是以支持增量的、非破坏的变更作为第一原则,同时支持在应用程序结构层面的多维度变化。
那如何判断微服务设计是否合理呢?其实很简单,只需要看它是否满足这样的情形就可以了:随着业务的发展或需求的变更,在不断重新拆分或者组合成新的微服务的过程中,不会大幅增加软件开发和维护的成本,并且这个架构演进的过程是非常轻松、简单的。
这也是微服务设计的重点,就是看微服务设计是否能够支持架构长期、轻松的演进。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《DDD实战课》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • 密码123456
    之前2个月前,要做微服务,当时不了解是啥,就感觉好厉害。然后按照业务划分。最后做成的结果,就像文中说的。大单体变成小单体。,高度耦合。做的自己都快看不下去了。

    作者回复: 在没有用DDD之前,我们也是这么干的^_^。

    2019-11-18
    2
    3
  • gzeureka
    在同一个微服务内的应用层使用领域层的服务时,数据传递建议使用哪种类型的对象呢?是用DTO还是DO?

    如果因为性能问题,讲应用层对领域服务的调用从微服务内调用改为跨微服务调用(例如RESTful或者RPC),那么调用接口传递数据是否使用DTO比较合适?

    作者回复: 应用层与领域层之间是DO。
    微服务之间用DTO比较合适。

    2019-11-22
  • 张迪
    那随着业务的快速发展,如果某一个微服务遇到了高性能挑战,需要将部分业务能力独立出去,我们就可以以聚合为单位,将聚合代码拆分独立为一个新的微服务。
    领域层拆了,应用层怎么拆成两个?

    作者回复: 应用层也可以拆的。但是应用层的服务如果跨聚合组合,先需要解耦,从微服务内调用改成跨微服务调用。然后将聚合封装出来的应用服务拆分。

    2019-11-20
  • skyhackvip
    消息总线是连接各位服务的关键吗?还是直接http或rpc就行?消息总线该如何设计呢?老师会讲讲这部分吗

    作者回复: 消息总线比较常见,这个专栏里就不讲了。

    2019-11-18
  • William.加
    老师,是不是不通过DDD拆分的微服务基本就是大单体到小单体的拆分?

    作者回复: 如果还是原来的架构模式,不做解耦的话,应该还是小单体模式。我也是找了好久才找到了DDD这个方法,不知道还有没有其它更好的方法。

    2019-11-18
收起评论
5
返回
顶部