这是“合法的”微服务设计吗?

时间:2019-04-20 23:02:25

标签: design-patterns service architecture domain-driven-design microservices

设置:

  • 在整个系统中,有一个为每个客户列出项目的概念,这需要多个服务A,B,C理解。
  • 这些相同的多个服务执行的工作类型与该项目列表有关。
  • 如果B或C使用的项目列表不是最新版本,则可以,只要它们最终获得最新版本即可。

我的设计:

  • 一项服务A是项目列表当前状态的真实来源。列表是在此服务中处理的。
  • 列表更改后,A会发布列表,而B和C(此事件的订阅者)会将其副本存储在自己的存储区中。
  • B和C进行工作时,会使用列表的本地副本。
  • B和C还具有特定于其域的其他状态。

我的基本原理:

由于B和C在工作时不向A索要清单,所以他们不依赖A。如果由于某种原因A掉线了,那么对系统的影响就是B和C不会拥有最新的信息,可以接受,并且在A固定后将得到缓解。

这有什么问题吗?

1 个答案:

答案 0 :(得分:0)

B和C具有所谓的缓存。过时是可以接受的,只需使用一种方法来用A验证当前版本是什么(通常使用上次修改的日期时间)就可以了。