首页 文章

什么是AWS等同于Firebase实时数据库?

提问于
浏览
54

我正在开发一个新的游戏项目,包括一个React Native前端和一个基于Lambda的后端 . 该应用程序需要一些实时功能,如活动用户记录,地理围栏等 .

我正在研究Firebase的实时数据库,它看起来像是一个非常优雅的实时数据同步解决方案,但我不认为AWS有任何类似的东西 .

我只能使用AWS服务来考虑“无服务器”实时的3个选项是:

Option 1: AWS IoT Messaging over WebSockets

这一点非常明显,通过IoT SDK实现托管WebSockets连接 . 我正在考虑触发Lambdas以响应入站和出站事件,只使用WebSockets作为实时层,就像通常那样在应用客户端上构建自定义处理逻辑 .

至少与Firebase相比,其缺点是我必须自己处理事件中的数据,这将在WebSockets之上添加另一层管理,并且必须使用应用程序商店中的API数据层进行标准化 . .

优点:

  • 可扩展的双向实时连接

缺点:

  • 仅在应用程序打开时有效

  • 需要实现消息结构

  • 要管理的多个传输层

Option 2: Push-triggered re-fetch

另一种选择是使用推送通知作为实时触发器,但使用对API网关的常规HTTP请求来实际获取更新的有效负载 .

我喜欢这种方法,因为它只适用于一个传输层和应用程序状态的单一事实来源 . 当应用程序未打开时,它也会触发更新,因为这些是推送通知 .

缺点是这是很多自定义工作,在推送通知与需要获取的数据之间存在潜在的困难映射 .

优点:

  • 推送通知即使在应用关闭时也能正常工作

  • 单一的事实来源,传输层

缺点:

  • 最自定义的解决方案

  • 将涉及更多的HTTP请求

Option 3: Cognito Sync 这对我来说比较新,我不确定它是否可以与服务器实际连接 .

Cognito Sync提供用户状态同步 . 跨设备完成离线支持,是我将要使用的Cognito SDK的一部分 . 这听起来就像我正在寻找的但却无法找到任何确凿的证据,因为它可以修改或“触发”来自AWS的更新,而不仅仅是来自其中一个设备 .

优点:

  • 提供抽象的实时数据模型

  • 已连接到Cognito用户记录OOTB

缺点:

  • 不确定是否可以从Lambdas修改或更新

我想知道是否有人有经验在AWS上实时作为基于Lambda的架构的一部分,如果你对什么是最好的方法有意见?

3 回答

  • 0

    使用不同的数据源(包括数据库搜索和计算)查看AWS AppSync中的部分实时和离线功能 .

  • 10

    我向AWS Support提出了类似的问题,这是他们的回答 .

    我向他们提问:

    什么是AWS服务组(如果可能的话)给予同样的浏览器实时DBaaS感觉像Firebase? AWS Cognito似乎非常适合用户帐户 . WebSockets /实时数据库部分有类似之处吗?

    他们的回应:

    对于您的问题,Firebase最接近AWS服务AWS MobileHub . 您可以从以下链接查看以下有关mobilehub的更多详细信息 . https://aws.amazon.com/mobile/details/ https://aws.amazon.com/mobile/getting-started/“AWS Cognito似乎非常适合用户帐户 . 是否有类似的WebSockets /实时数据库部分?“ Amazon Dynamodb是一种快速灵活的NoSQL数据库服务,适用于任何需要一致,单位数毫秒延迟的应用程序 . 它是一个完全托管的 Cloud 数据库,支持文档和键值存储模型 . 其灵活的数据模型,可靠的性能以及吞吐量容量的自动扩展使其非常适合移动,Web,游戏,广告技术,物联网和许多其他应用程序 . Amazon Dynamodb可以使用Amazon DynamoDB Accelerator(DAX)进一步优化,这是一个完全托管,高可用性的内存缓存,可以将Amazon DynamoDB响应时间从毫秒减少到几微秒,即使每秒数百万个请求也是如此 . 有关详细信息,请参阅以下文档 . https://aws.amazon.com/dynamodb/getting-started/ https://aws.amazon.com/dynamodb/dax/如果您有任何其他问题,请随时与我们联系 . 谢谢 . 此致,Tayo O.亚马逊网络服务查看AWS支持知识中心,这是一个文章和视频知识库,可回答客户关于AWS服务的问题:https://aws.amazon.com/premiumsupport/knowledge-center/?cympid = support_email_category

    在研究这个答案时我也发现了这个,看起来很有趣:

    https://aws.amazon.com/blogs/database/how-to-build-a-chat-application-with-amazon-elasticache-for-redis/

    对该文章的评论也很有趣 .

    Jacob Wakeem:有什么好处这种方法已经过度使用了aws iot?似乎iot具有所有这些功能,无需编写单行代码和无服务器架构 . Sam Dengler:AWS IoT服务中托管的PubSub功能也是基于消息的应用程序的一种很好的方法,就像本文中展示的那样 . 使用Elasticache(Redis),使用Pub / Sub的客户通常也将Redis用作其他用例的数据存储,例如缓存,排行榜等 . 话虽如此,您还可以将ElastiCache(Redis)与AWS IoT服务一起使用通过AWS IoT规则引擎触发AWS Lambda函数 . 根据基于消息的应用程序的架构方式以及如何利用数据,一种解决方案可能比另一种解决方案更合适 .

  • 27

    听起来像AWS Serverless是最适合的选择 .

    还想知道:AWS vs Firebase - Is It Even a Fair Fight?

相关问题