Java 针对不同类型实体的微服务设计
我只是想了解如何为以下用例设计/编写微服务: 客户端微服务MediaStore(我们称之为A)与另外两个不同的微服务对话Java 针对不同类型实体的微服务设计,java,design-patterns,architecture,microservices,domain-driven-design,Java,Design Patterns,Architecture,Microservices,Domain Driven Design,我只是想了解如何为以下用例设计/编写微服务: 客户端微服务MediaStore(我们称之为A)与另外两个不同的微服务对话 微服务电影(B) 微服务手册(C) 用户可能希望从MediaStore查看/订购电影或书籍。 我知道Movie microservice将有其电影实体和MovieDB,同样,Book microservice将有其Book实体和BookDB。由于用户可以订购,MediaStore微服务端有一个“订单”实体 但是如何在客户端MediaStore微服务上设计/编写/使用它们呢 a
c)如果我能从StackOverflow社区获得关于此用例的任何其他建议/知识/提示,那将非常有帮助。:)如果这些实体(电影和书籍)之间有不同的属性,我想是的,microservice A必须管理两个不同的实体,因此您应该选择B选项
使用这种方法,您的订单实体将包括一个项目列表,项目必须存储项目类型,以便您可以将其转换为原始实体以获取其特定信息DDD的一个主要部分是在定义更改时识别(这些更改描述了有界上下文)。一般来说,让您的微/宏服务(为此,宏服务是作为协作微服务部署的单个服务)保持在一个有限的上下文中是一个好主意 因此,考虑到这一点,您可能需要考虑MediaStore的用途。如果它的目的只是管理订单,那么书籍和电影之间真的有区别吗?如果没有,那么在MediaStore的上下文中,您所需要的只是“item”,它可以有一个属性,表示“这是一本书还是一部电影”。它不会有任何特定于书籍或电影的东西:像作者、明星、导演等都是书籍和电影实体的属性,它们都有一个属性(甚至可能是零本或一本,或一本或多本,或零本或多本:想想你可能如何处理那些不出售/预购的书或电影,或者有许多不同版本的书或电影…)将它们链接到项目。然后你就可以使用图书/电影服务来管理图书/电影的特定信息