【问题标题】:What does bounded context mean in Microservices World?有界上下文在微服务世界中意味着什么?
【发布时间】:2018-06-17 01:52:08
【问题描述】:

我一直在学习实现微服务,但我无法理解“有界上下文”这个术语?

我可以理解它是由领域驱动设计产生的概念。但我无法理解它的技术实现。

我查看了以下链接:

  1. microservices and bounded contexts
  2. https://martinfowler.com/bliki/BoundedContext.html
  3. https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/microservice-domain-model

【问题讨论】:

  • 你不明白哪一部分(确切地)?说“技术实现”过于宽泛
  • @Sam 查看我的更新答案

标签: java domain-driven-design microservices


【解决方案1】:

它是一个术语具有一致含义的最大区域/区域/地方(对于业务专家和开发人员来说,这意味着相同的东西)。我故意避免使用“上下文”这个词。理想情况下,限界上下文正是来自现实世界的域。

对于微服务,微服务不应大于有界上下文。

更新

如果系统设计正确,Bounded context应该是一个独立的域;实际上,当事情没有正确完成时,Bounded context 比域大。在大型企业中,一些开发人员创建对象(模型)来尝试捕获与某个术语相关的所有行为。例如,Product 在商店中。这个词非常广泛。来自在线商店的Product 和来自库存系统的Product 不是一回事,尽管它们看起来可能是这样的。在这种情况下,在线商店应该是有界上下文,而库存应该是不同的。

实施

例如,每个“产品”在每个有界上下文中都应该有不同的类。有界上下文可以实现为(更好的表达方式是“可以视为”)单体应用中的namespacepackage,或者作为微服务分布式系统。

【讨论】:

  • 有界上下文应该是一个独立域,如果系统设计正确的话;实际上,当事情没有正确完成时,有界上下文大于域。在大型企业中,开发人员创建对象(模型)来尝试捕获与某个术语相关的所有行为。例如,Product 在商店中。这个词非常广泛。网上商店中的“产品”和库存系统中的“产品”不是一回事,尽管它们看起来可能是这样的。在这种情况下,在线商店应该是有界上下文,而库存应该是不同的。
  • 例如,每个“产品”在每个有界上下文中都应该有不同的类。在大多数编程语言中,有界上下文可以实现为 namespacepackage
【解决方案2】:

限界上下文是一个独立的域。让我们把它想象成公司的不同部门。诸如关注点分离之类的东西。一个独立的上下文,其中所有利益相关者(业务分析师、测试人员、开发人员、业务人员)对限界上下文中使用的术语具有相同的定义。然后,您可以拥有一个与每个限界上下文相对应的单独微服务。例如:如果您在保险领域,那么您可以拥有客户、报价、保单等有界上下文,并且可以为每个人提供一个微服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-29
    • 2014-05-15
    • 2016-12-15
    • 2019-04-10
    • 1970-01-01
    • 2015-06-20
    • 2015-01-04
    • 2012-12-17
    相关资源
    最近更新 更多