AWS 云中带有订阅的 Apollo GraphQL 服务器

Posted

技术标签:

【中文标题】AWS 云中带有订阅的 Apollo GraphQL 服务器【英文标题】:Apollo GraphQL server in AWS cloud with subscriptions 【发布时间】:2019-01-27 16:46:27 【问题描述】:

我想使用 AWS 设置一个 apollo graphql 服务器。我尝试使用 AWS Lambda 设置 apollo-server-lambda,它工作得非常好,但是它缺少非常重要的功能:订阅,对于那些你需要一个 websocket 服务器的人。

我看到了这个问题的解决方案 https://github.com/ioxe/graphql-aws-iot-server 使用 AWS IoT 来处理订阅,但它似乎相当复杂且无人维护。

我的问题是获得订阅是一个正确的解决方案,还是我应该设置一个 EC2 实例并在那里运行 apollo 服务器?

另外,如果我为此设置了一个 EC2 实例,设置会更容易吗?应该如何扩展?

附:在您问之前,我知道 AWS AppSync 并且该服务不适合,因为它存在 N+1 问题、查询执行时间长和 android 客户端损坏的大问题。

【问题讨论】:

【参考方案1】:

我目前正在使用 AWS Lambda,但是当我需要添加订阅时,我计划迁移到 Elastic Beanstalk,而不仅仅是一个简单的 EC2 实例,因为它为您做了很多扩展,而且由于 apollo server 2 它是大约一行代码从 Lambda 切换到 Beanstalk

【讨论】:

以上是关于AWS 云中带有订阅的 Apollo GraphQL 服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用订阅和 AWS AppSync 高效同步 Apollo 的缓存

带有 Vertx 订阅的 Apollo GraphQL 失败

带有 GraphQL Apollo 客户端的订阅组件

使用带有 Kotlin 和流的 Android 上的 Apollo 订阅 GraphQL 时处理网络错误

使用带有 React 和 Apollo 的 graphql 订阅制作实时应用程序

带有 Meteor 的 Blaze-Apollo,观察者不会触发变量更改的订阅