node.js - API 网关和微服务通信

标签 node.js rabbitmq graphql microservices apollo-client

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

最佳答案

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

你可以看看这个article这解释了优点。

关于node.js - API 网关和微服务通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56126710/

相关文章:

java - 如果架构与数据库结构不同,如何将 graphql 与 jpa 一起使用

docker - 从不同的docker-compose.yml部署容器

java - Spring amqp 拒绝监听器外部的消息

reactjs - 如何使用 Apollo 客户端进行批量突变

Node.js 可重用代码服务器-客户端

java - 如何在 Web 上下文中设置 RabbitMQ RPC

go - gqlgen - DirectiveResolver 未由生成的包导出

node.js - 依赖链 : category -> shop => category in model sequelizejs while defining foreign key

javascript - 通过值比较合并 JSON 对象

angularjs - 使用 Redis 键值存储的实时 Web 应用程序