当前位置: 首页 > 知识库问答 >
问题:

AWS与Firebase实时数据库的等价物是什么?

田权
2023-03-14

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

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

对于仅使用AWS服务的“无服务器”实时,我可以想到的3个选项是:

选项1:通过WebSocket的AWS物联网消息传递

很明显,这是一个通过IoT SDK的托管WebSockets连接。我正在考虑触发Lambdas以响应入站和出站事件,并只使用WebSockets作为实时层,在应用程序客户端上构建定制处理逻辑,就像您通常会做的那样。

这样做的缺点是,至少与Firebase相比,我必须自己处理事件中的数据,这将在WebSocket之上添加另一层管理,并且必须与应用程序存储中的API数据层标准化。

优点:

  • 可扩展的双向实时连接

欺骗:

  • 仅在应用程序打开时工作

选项2:按动触发重取

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

我喜欢这种方法,因为它只坚持一个传输层和应用程序状态的单一真实来源。它还将在应用程序未打开时触发更新,因为这些是推送通知。

缺点是,这是大量定制工作,在推送通知与需要获取的数据之间可能存在困难的映射。

优点:

  • 推送通知工作,即使应用程序关闭
  • 单一真相来源,传输层

欺骗:

  • 最定制的解决方案
  • 将涉及更多的HTTP请求整体

选项3:Cognito Sync这对我来说是新的,我不确定它是否可以从服务器上连接。

Cognito Sync提供用户状态同步。跨设备完成离线支持,是Cognito SDK的一部分,我将使用它。这听起来像是我正在寻找的,但找不到任何确凿的证据表明是否有可能修改或“触发”来自AWS的更新,而不仅仅是来自其中一台设备。

优点:

  • 提供一个抽象的实时数据模型
  • 连接到Cognito用户记录OOTB

欺骗:

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

我想知道是否有人有在AWS上作为基于Lambda的体系结构的一部分进行实时处理的经验,以及您是否对什么是进行实时处理的最佳方式有意见?

共有3个答案

公良照
2023-03-14

AWS Amplify是AWS对Firebase的现代回应。

构建移动和Web应用程序的最快方法

AWS Amplify是一个开发平台,用于构建安全、可扩展的移动和web应用程序。它使您能够轻松地对用户进行身份验证、安全地存储数据和用户元数据、授权对数据的选择性访问、集成机器学习、分析应用程序度量以及执行服务器端代码。Amplify涵盖了从版本控制、代码测试到生产部署的完整移动应用程序开发工作流,它可以轻松地随您的业务从数千用户扩展到数千万用户。Amplify库和CLI是Amplify框架的一部分,它们是开源的,提供了一个可插入的接口,使您能够自定义和创建自己的插件。

都博裕
2023-03-14

请查看AWS AppSync,了解使用不同数据源(包括数据库搜索和计算)的一些实时和脱机功能。

邓浩漫
2023-03-14

我向AWS支持部门提出了一个类似的问题,这是他们的回答。

我对他们的问题是:

哪组AWS服务(如果可能的话)可以让浏览器中的实时DBAS感觉像Firebase?

AWS Cognito似乎非常适合用户帐户。WebSocket/实时DB部分有类似的吗?

他们的答复:

对于您的问题,Firebase离AWS服务AWS MobileHub最近。您可以从下面的链接查看有关mobilehub的更多详细信息。

https://aws.amazon.com/mobile/details/ https://aws.amazon.com/mobile/getting-started/

“AWS Cognito似乎非常适合用户帐户。WebSockets/实时数据库部分是否有类似的功能?”

AmazonDynamodB是一种快速灵活的NoSQL数据库服务,适用于所有在任何规模上都需要一致的单位数毫秒延迟的应用程序。它是一个完全管理的云数据库,支持文档和键值存储模型。其灵活的数据模型、可靠的性能和自动扩展的吞吐量,使其非常适合移动、网络、游戏、广告技术、物联网和许多其他应用。

Amazon Dynamodb可以通过Amazon Dynamodb加速器(DAX)进行进一步优化,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/?icmpid=support_email_category

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

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

对那篇文章的评论也很有趣。

Jacob Wakeem:与使用aws物联网相比,这种方法有什么优势?iot似乎拥有所有这些功能,而无需编写一行代码,并且具有无服务器架构。

Sam Dengler:AWS IoT服务中的托管PubSub功能也是基于消息的应用程序的一个很好的方法,就像本文中演示的那样。使用Elasticache(Redis),使用Pub/Sub的客户通常也使用Redis作为其他用例(如缓存、排行榜等)的数据存储。话虽如此,您还可以通过AWS物联网规则引擎触发AWS Lambda函数,将弹性缓存(Redis)与AWS物联网服务结合使用。根据如何构建基于消息的应用程序以及如何利用数据,一种解决方案可能比另一种更适合。

 类似资料:
  • 在Mac和Windows上,可以使用 <罢工> (替换 )和 (替换 ) (Docker 18.03+)位于容器内。 对于Linux来说,有没有一个可以在不传递env变量或使用各种CLI命令提取它的情况下开箱即用的方法?

  • 在Mac和Windows上,可以使用 是否有一款Linux操作系统可以在不传递env变量或使用各种CLI命令提取env变量的情况下开箱即用?

  • 众所周知,firebase rtdb的读/写成本是免费的。再深入一点,我就可以发现读/写实际上会以非直接方式产生成本。好的,所以我一直在搜索文档和问题,以找出“FIRESTORE阅读成本(每100000个文档0.06美元)和实时数据库下载成本(每GB 1美元)之间的确切区别”,但遗憾的是,我无法完成它。 RTDB的存储数据成本(5美元/GB)非常明确,我知道每月的账单价格(这是真的,对吧?)。但下

  • 我仍然在学习和试验JavaFX中的GUIs,我似乎无法得到我所希望的“外观”…我试图在一个面板中分组几个标签,然后在另一个面板中添加另一个标签。但我似乎不知道如何在JavaFX中正确使用“JPanels”? 如有任何帮助,将不胜感激 编辑:这是我试图通过尝试不同的布局来实现的,但运气仍然不好

  • 我们有以下场景:使用Sonarqube扫描Windows10中的两个项目。 null 提前谢了。