【发布时间】:2015-09-03 16:48:25
【问题描述】:
上下文
我有两个微服务:
- 管理用户的用户(crud 操作)
- 管理帐单信息的帐单,参考用户
实际上,对我来说(告诉我是否错了)使用 hatoas 将用户信息存储到计费数据中是个好主意。所以我们可以通过 API 响应中的超链接“遍历它”对吗?
我们可以得到类似的东西:
billing:{
// some informations
_links:{
owner:"http://80.80.80.80:7000/users/123456789"
}
}
问题
我应该怎么做,创建一个新的账单?事实上,当有人在微服务上发布新账单时,他也会发送给用户。这是否意味着我需要在我的 Billing 服务和我的 User Service 中有一个 UserEntity ?所以计费服务将能够编组请求,这意味着两个服务之间的代码重复?还是我应该做点别的?
那么,这是前端(API 使用者)的角色来发出 2 个请求(一个用于计费,一个用于与计费相关的用户)以获取资源吗?还是说BillingService应该先得到User再响应前面?
我在一篇文章中看到,在处理微服务的时候使用amqp/bus是个好东西,可以知道一个资源是否存在,或者检查它是否存在。现在我们需要一个服务容器/注册表来动态发现其他服务。就我而言,我使用 Zookeeper。但是我该怎么做才能告诉 Zookeeper “给我与资源相关的服务的位置与 hatoas 链接:http://80.80.80.80:7000/users/123456789”?我是否遗漏了我的 hateoas 架构中的重要信息?
【问题讨论】:
标签: rest amqp hateoas microservices