【发布时间】:2019-09-10 16:58:12
【问题描述】:
设置:
- 在整个系统中,每个客户都有一个项目列表的概念,这需要一个被多个服务 A、B、C 理解的概念。
- 这些相同的多个服务执行针对该项目列表的不同类型的工作。
- B 或 C 操作的项目列表版本不是最新的,只要他们最终获得最新版本即可。
我的设计:
- 一个服务 A 是项目列表当前状态的真实来源。该列表在此服务中进行操作。
- 当列表更改时,A 会发布列表,而 B 和 C(此事件的订阅者)会将其副本存储在自己的存储中。
- 当 B 和 C 工作时,他们使用列表的本地副本。
- B 和 C 还具有特定于其域的其他状态。
我的理由:
由于 B 和 C 在工作时不向 A 索要列表,因此他们不依赖 A。如果由于某种原因 A 出现故障,对系统的影响只是 B 和 C 不有最新的信息,这是可以接受的,并且当 A 被修复时会得到缓解。
这有什么问题吗?
【问题讨论】:
-
听起来像观察者模式;但你应该问一个更具体的问题以获得更具体的答案。 “有什么问题吗,”是主观的,对 SO 来说是一个过于宽泛的问题。
-
这并没有错。您可以查看此视频,该视频解释了与您正在做的类似的概念 youtube.com/watch?v=STKCRSUsyP0。确实这个问题太宽泛了。
-
这种方法没有错。它是微服务之间数据集成的标准方式。
标签: design-patterns service architecture domain-driven-design microservices