繁体   English   中英

在微服务之间共享实体ID

[英]Sharing entity ID between microservices

假设我有一个Users微服务。 它的数据通过HATEOAS“模式”之后的REST API消耗,因此常见的请求/响应如下所示:

GET /users

{
  results: 5,
  data :[
    {
      name: "John Doe",
      email: "whatever",
      ...,
      links : [
        {
          rel: "self",
          href: "/users/1"
        }
      ]
    },
    ...
  ]
}

正如HATEOAS所说,不会返回用户ID,而是指向“自我”的链接。

到现在为止还挺好。 现在,我想要另一个微服务来管理用户的图片。 在该新的微服务中,一个用户与其照片之间存在关系,因此我将需要一个用户标识符。

我应该在pics微服务中使用“ / users / 1”(“ self”链接)作为用户ID吗?

如果没有,我该如何处理?

您不能采用url的结构,但可以返回实体ID。

我应该在pics微服务中使用“ / users / 1”(“ self”链接)作为用户ID吗?

如果执行此操作,则假定第二个微服务正在使用相同的url方案,这很不好。 您将两个微服务耦合在一起。

另外,请求响应中包含的url仅对那些(微)服务有意义,您不能仅仅假设另一个系统中的相应resource具有相同的id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM