【问题标题】:Chat App on AWS: EC2 (eJabberd XMPP) vs RDS (Relational Database) vs other options? [closed]AWS 上的聊天应用程序:EC2(eJabberd XMPP)与 RDS(关系数据库)与其他选项? [关闭]
【发布时间】:2016-02-05 22:54:31
【问题描述】:

我想为 1:1 和群聊创建一个 iOS 应用。由于DynamoDB is not the ideal solution for this,我目前正在寻找更好的方法。

可能的解决方案:

  1. 在 AWS EC2 上安装 XMPP 服务器(eJabbered)
  2. 将 AWS RDS(关系型数据库)与一个聊天表结合使用,其中每条记录都相当于从一个客户端发送给另一个客户端或一组客户端的消息。
  3. 使用 Amazon S3 存储每次聊天的文件?
  4. 其他选项?

以上哪一项是最优雅/最简单的解决方案? some. 不推荐选项 1@ 选项 2 似乎更容易(自动)扩展。

哪个更划算? 关于 RDS 亚马逊写道:

“AWS 免费套餐包括一年内每月 750 小时的微型数据库实例”

关于 EC2 亚马逊写道:

“AWS 免费套餐包括一年内每月 750 小时的 Linux 和 Windows t2.micro 实例。要保持在免费套餐内,请仅使用 EC2 Micro 实例。”

我对服务器后端架构还很陌生,但是基于时间的记帐似乎不是聊天应用程序的最佳解决方案?

【问题讨论】:

  • 对此没有正确答案;只是意见(和工具建议)。 StackOverflow 的题外话。
  • 嗯,我希望得到像“选项 X 真的很糟糕,因为......”这样的答案。现在我倾向于使用 AWS RDS 和 SQL 来存储聊天记录。
  • 您好,请问您是如何使用 RDS 实现实时聊天消息的?

标签: amazon-web-services amazon-ec2 xmpp ejabberd amazon-rds


【解决方案1】:

S3 解决方案不是首选,因为 Amazon S3 上的 PUT Authorized 限制太小(2000),因此如果您要进行数百万次聊天对话,您的成本将太棒了。

目前我正在使用 AWS RDS 在我的 android/ios 应用程序上提供聊天功能。
该解决方案运行良好,因为我的数据库和您的服务器应用程序是可扩展的,但我不确定它是否是更好的解决方案。

结论
如果我今天必须启动一个新的聊天应用程序,我会选择 XMPP 服务器,因为它成本更低,性能更好。

【讨论】:

  • 感谢您分享您的经验。请参阅我编辑的答案。在 AWS EC2 上(自动)扩展 eJabberd / XMPP 似乎不是一件容易的工作。
  • 自动缩放任何连接的协议不是一个好主意,因为如果你想缩小它,用户将需要被踢出,而不是 HTTP 是请求和响应并且易于自动缩放。
  • 您认为扩展 eJabberd 服务器的最佳方式是什么?
  • 您好,我也想使用RDS,但不知道如何在RDS中使用实时聊天功能。你能指导我吗?
猜你喜欢
  • 2011-04-05
  • 2018-01-16
  • 1970-01-01
  • 2020-07-02
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
相关资源
最近更新 更多