Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 针对不同类型实体的微服务设计_Java_Design Patterns_Architecture_Microservices_Domain Driven Design - Fatal编程技术网

Java 针对不同类型实体的微服务设计

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

我只是想了解如何为以下用例设计/编写微服务:

客户端微服务MediaStore(我们称之为A)与另外两个不同的微服务对话

  • 微服务电影(B)
  • 微服务手册(C)
  • 用户可能希望从MediaStore查看/订购电影或书籍。 我知道Movie microservice将有其电影实体和MovieDB,同样,Book microservice将有其Book实体和BookDB。由于用户可以订购,MediaStore微服务端有一个“订单”实体

    但是如何在客户端MediaStore微服务上设计/编写/使用它们呢

    a) 我是否应该使用另一个通用实体(比如项目)作为电影和书籍的父接口,以便与通用实体(项目)交互? 原因是,我想在MediaStore微服务中创建一个实体“Order”。订单可以是电影或书籍

    b) 或者我应该将它们单独用作电影和书籍实体吗?从而在MediaStore microservice中创建MovieOrder和BookOrder作为订单


    c)如果我能从StackOverflow社区获得关于此用例的任何其他建议/知识/提示,那将非常有帮助。:)

    如果这些实体(电影和书籍)之间有不同的属性,我想是的,microservice A必须管理两个不同的实体,因此您应该选择B选项


    使用这种方法,您的订单实体将包括一个项目列表,项目必须存储项目类型,以便您可以将其转换为原始实体以获取其特定信息

    DDD的一个主要部分是在定义更改时识别(这些更改描述了有界上下文)。一般来说,让您的微/宏服务(为此,宏服务是作为协作微服务部署的单个服务)保持在一个有限的上下文中是一个好主意

    因此,考虑到这一点,您可能需要考虑MediaStore的用途。如果它的目的只是管理订单,那么书籍和电影之间真的有区别吗?如果没有,那么在MediaStore的上下文中,您所需要的只是“item”,它可以有一个属性,表示“这是一本书还是一部电影”。它不会有任何特定于书籍或电影的东西:像作者、明星、导演等都是书籍和电影实体的属性,它们都有一个属性(甚至可能是零本或一本,或一本或多本,或零本或多本:想想你可能如何处理那些不出售/预购的书或电影,或者有许多不同版本的书或电影…)将它们链接到项目。然后你就可以使用图书/电影服务来管理图书/电影的特定信息