两个微服务之间的通信
我正在创建一个具有微服务架构的项目。我创建了两个微服务。
其中一个用于产品实体,另一个用于票据实体。它们有自己的端点,并且它们与网关连接在一起(我正在使用jhipster微服务架构)。
帐单 ms 应访问产品列表。我想知道我如何在这两个ms之间进行通信。我脑子里有三种方法:
从 bill-ms 向队列发送请求 - 就像 rabbitMQ 一样,从 product-ms 获取带有这些 ID 的产品(我不知道这是什么瓶颈)
向网关发送产品服务请求并从那里获取产品(我担心延迟,因为它们之间的数据大小,这样我就不会直接接触数据库,所以我总是依赖网关)
我可以在bill-ms中复制存储库,服务和实体(这是一种丑陋的方式,我认为它打破了ms架构的规则,维护非常困难)
如果您有任何其他方法,感谢您与我分享。
编辑
- 现在我知道瓶颈是什么了:假设有3个bill-ms实例,rabbitMQ如何决定响应哪个实例?或者我应该如何说功能区“给我免费的bill-ms实例来订阅来自rabbitMQ的请求”以进行负载平衡。