API 网关和微服务通信

Lul*_*ule 5 rabbitmq node.js microservices graphql apollo-client

我正在构建微服务架构,我需要交流方面的帮助。API 网关与服务通信的最佳方法是什么?我的 API 网关将是graphql apollo服务器,服务将是REST APIs.我是否应该使用 REST 与服务或某些消息系统进行通信,例如RabbitMQ ?

onu*_*tan 5

两种方法都可以做到,但是使用像RabbitMQ 这样的消息代理系统将为您带来负载平衡的优势。对于 HTTP Rest 通信,您需要一个负载均衡器,以便将流量分发并路由到各个实例。但对于像 RabbitMQ 这样的消息代理,代理本身就是负载均衡器。如果多个消费者同时监听同一个地址,消息将并行传递,而不是像 HTTP 那样互相阻塞。我希望我能解释清楚:)

你可以看看这篇文章,它解释了优点。