0

我计划在 Google App Engine (GAE) 上使用 Apollo-Graphql。所以我不必担心缩放(我将使用 Redis 或其他一些 pubsub)。但是,问题是 GAE 不支持 Web 套接字。我大量使用 GraphQL 订阅。

Google 建议将 Web 套接字分离到另一个 VM(如 Google Compute Engine)中,并将其余部分保留在 GAE 中:https ://cloud.google.com/solutions/real-time-gaming-with-node-js-websocket

是否可以在 Apollo Server 上执行此操作?我正在使用节点 js apollo-server-express

4

1 回答 1

1

这是扩展您的基础设施的好模式。apollo-server-express使用/Apollo-Graphql没有禁忌症。

使用相同的代码库,一个处理查询和变异,http另一个处理订阅websocket。只需将正确的网络路由到 (GAE) 或 Google Compute Engine。

每个http查询都将由 GAE 处理。apollo-client 将订阅wsGoogle Compute Engine 上的查询。当一个事件在 Redis 或其他上发布时,apollo-graph 将仅在它们是订阅者时消费和解决ws

所以你不需要在 GAE 上连接 pubsub/Redis。

我正在考虑使用 2 个项目httpws但它不会共享 graphQL 模式。

于 2017-12-15T21:12:10.680 回答