写点什么

DDD-6- 限界上下文

作者:南山
  • 2024-08-27
    江苏
  • 本文字数:600 字

    阅读完需:约 2 分钟

是什么

  • 是一个显示的边界,在边界内维护概念一致性,一个限界上下文对应一套统一语言

    概念的一致性是通过语义上的一致性来表达的

    在大型系统中保持概念一致性非常困难,而概念一致性是所有的基础

    在每个子系统的内部实现概念的严格一致性,而不同系统内部之间则没有必要一致。

  • 表示一个子系统、子模型或者维护这个子系统的团队

  • 是一种分而治之的手段,可以起到分离关注点的作用 

价值

  • 指导系统科学地拆分

  • 解决规模大的带来的挑战

规模大的挑战

  • 沟通变困难了

  • 系统的代码质量变差了

  • 系统的外在质量问题也跟着变多了

  • 不同需求的互相等待

  • 想通过横向扩展来提高性能

关键点

  • 不同上下文的同一个名词,有可能概念已经不完全一致了

  • 两个上下文之间的这种映射关系,做上下文映射(context map)

  • 聚焦一个上下文时,应聚焦在什么样的模型对实现当前上下文功能最有利,而不是受其他上下文影响

与微服务的关系

  • 限界上下文为微服务的划分奠定了基础

    限界上下文可以解决因为模型划分不合理,没有找到内聚的业务边界,导致的“分布式单体”现象

  • 一个限界上下文或者几个限界上下文对应一个微服务,取决于维护该微服务的团队认知负载

  • 注意:避免一个限界上下文分布在不同的微服务中,造成业务概念以及实现高耦合、松内聚导致的需求变更涉及改动范围大

限界上下文集成

  • 集成原则

    不论采用哪种策略,概念层面的映射关系都是一样的,只是实现层面不同。

  • 集成策略

    数据同步(同步调用+异步调用)

    API 调用(同步调用+异步调用)

  • 转换逻辑实现

    防腐层

用户头像

南山

关注

采菊东篱下,悠然见南山~ 2018-05-04 加入

黄沙百战穿金甲,不破楼兰终不悔!

评论

发布
暂无评论
DDD-6-限界上下文_领域驱动设计_南山_InfoQ写作社区