我正在创建一个微服务架构的项目。我创建了两个微服务。
其中之一是产品实体的微服务,另一个是账单实体的微服务。它们有自己的终端点,并且使用网关相互连接(我正在使用jhipster微服务架构)。
账单-ms应该访问产品列表。我想知道如何在这两个微服务之间进行通信。我有三种方法:
从账单-ms发送请求到队列 - 如rabbitMQ ,以获取来自产品-ms 的具有这些ID的产品(我不知道瓶颈在哪里)。
向网关发送请求以获取产品服务,并从那里获取产品(我担心由于数据大小而产生的延迟,并且以这种方式我没有直接接触数据库,因此我始终依赖于网关)。
我可以在账单-ms 中复制存储库、服务和实体(这是一种丑陋的方式,我认为它违反了ms-architecture规则,而且维护非常困难)。
如果您有其他方法,请与我分享。
编辑
- 现在我知道瓶颈在哪里:假设有3个账单-ms 的实例,rabbitMQ如何决定哪个实例作出响应?或者我应该怎样告诉ribbon“给我免费的账单-ms 实例以订阅来自rabbitMQ的请求”进行负载均衡。