我们有三个微服务MSA,MSB和MSC。微服务MSA创建部分对象O1并仅通过专用消息主题发送给MSB。在从MSA接收到部分对象O1之后,MSB在O1中填充更多属性并共享MSC从中消耗对象O1的公共消息总线。
问题是,这是一种在多个微服务中共享对象构建的好方法吗?
答案 0 :(得分:2)
这是你的回答:
在面向对象的编程中,God对象是一个知道太多或太多的对象。上帝的对象是反模式的一个例子。
一种常见的编程技术是将一个大问题分成几个较小的问题(分而治之的策略)并为每个问题创建解决方案。一旦解决了较小的问题,整个大问题就解决了。因此,针对小问题的给定对象仅需要了解自身。同样,对象只需要解决一组问题:它自己的问题。
答案 1 :(得分:1)
所以你有一个微服务订购和一个微服务定价。两个微服务都需要有关产品实体的信息。
你应该问问自己:
如果不是(可能是这种情况),则必须在它们之间添加一个抽象层,以确保它们使用相同的语言。 如果是,您可以继续共享同一个对象。
顺便说一下,你所拥有的这些担忧并不是一件新鲜事。 这是Martin Fowler关于bounded contexts
的文章因此,DDD将大型系统划分为有界上下文 其中可以有统一的模型 - 本质上是一种结构化方式 MultipleCanonicalModels。
进一步研究的关键词: DDD,背景图,有界背景,反腐层。