
为什么用事件驱动型微服务
|
3
1.2
领域驱动设计和界限上下文
领域驱动设计由
Eric Evans
在他的同名图书《领域驱动设计:软件核心复杂性应对之道》
1
中提出,书中介绍了一些构建事件驱动型微服务所必需的概念。鉴于已有丰富的文章
(“
What
is the Domain Model in Domain Driven Design?
”)、图书(《实现领域驱动设计》)和
博客资源讨论了这一主题,本节仅做简单介绍。
以下概念支撑了领域驱动设计。
领域
某个企业所涉足并提供解决方案的问题空间。它涵盖了这个企业必须关注的所有内容,
包括规则、流程、想法、特定于业务的术语,以及所有跟这个问题空间相关的东西,
无
论该企业是否与之相关
。领域的存在跟企业是否存在无关。
子领域
子领域是主领域的一个部分。每个子领域都聚焦于一个特定的职责子集,并且通常反映
了企业的部分组织结构(如仓储、销售和工程部门)。一个子领域本身可视为一个领域。
跟领域一样,子领域也属于问题空间。
领域(子领域)模型
这是一种用于商业目的的对实际领域的抽象。在领域中对企业最重要的部分和属性被用
来生成模型。一个企业的主领域模型可通过其提供给客户的产品、客户与产品交互的接
口以及企业实现既定目标的各种流程和功能来识别。模型往往需要随着领域的改变和业
务优先级的变化而不断完善。领域模型是解决方案空间的一部分,因为它是企业用来解
决问题的框架。
界限上下文
界限上下文是与子领域相关的逻辑边界,包括输入、输出、事件、需求、流程和数据模
型。虽然在理想情况下,界限上下文会和子领域保持完全一致,但是历史遗留的系统 ...