perl - 在 EC2 上扩展 MongoDB 还是应该切换到 DynamoDB?

标签 perl mongodb amazon-simpledb amazon-dynamodb

我目前在使用 MongoDB 的单个服务器上运行我的网站。在我的服务器上,我有两个组件 (1) 一个每小时运行的爬虫并将数据附加到我的 MongoDB 实例 (2) 一个从爬虫索引读取并写入用户个性化数据库的网站。我正在迁移到 Amazon EC2 进行自动扩展,以便网络服务器可以自动扩展,因此我可以随着网络流量的增加而增加服务器的数量。我的爬虫不需要自动缩放。这对我如何使用 MongoDB 提出了挑战。我想知道我最好的选择是优化

  • 对我的代码的最小改动(代码在 perl 中)
  • 能够无缝添加/删除网络服务器,而不必担心丢失数据库中的数据
  • 低成本

在短期内,数据库肯定能够适应所有机器的内存,因为它会低于 2 GB。用户个性化数据库无法重建,因此拥有它更重要,而索引可以轻松重建。当前的 MongoDB 爬网索引有大约 100k 个条目,这些条目以大约 15 个不同的列为键。这是为速度而设计的,因为我正在开发一个在线约会网站(可以通过多种方式搜索)。

我能想到几个选项

  1. 使用 SimpleDB 作为用户个性化存储,使用 MongoDB 作为索引。让索引在所有机器上复制,但是,我对 MongoDB 复制了解不多。
  2. 将所有内容移至 SimpleDB
  3. 将所有内容移至 DynamoDB

我对 SimpleDB 和/或 DynamoDB 了解不多。根据文章,DynamoDB 似乎是一个自然的选择,但我不确定是否有良好的 perl 支持,是否可以拥有所有列、索引等。有人​​有经验或有什么建议吗?

最佳答案

您可以在 EC2 上的单个服务器上托管 Mongo,Web 场中的每个盒子都连接到该服务器。然后,您可以轻松启动另一个使用相同数据库盒的 Web 实例。

当我们运行一个副本集时,我们目前有三个 Mongo 服务器,当我们需要使用 Mongo 进行水平扩展时,我们将启动一些新实例并将更大的集合分片。

关于perl - 在 EC2 上扩展 MongoDB 还是应该切换到 DynamoDB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9354144/

相关文章:

android - 如何捕捉 Amazon AWS 错误 Android

perl - 在备用 X11 显示器上打开弹出菜单时 Gtk3 崩溃

perl - 为什么Perl不支持双引号的哈希插值?

bash - 按长度替换模式(Bash 的可移植解决方案)

mongodb - 只删除 MongoDB 中的一个文档

javascript - Mongoose自动改变值的类型

Perl:如何找到已知子文件夹的父文件夹?

mongodb - 为什么我的更新函数返回新查询但不更新数据库?

ios - AWS Cognito Credentials Provider for IOS - 访问 key 和 secret key 为零

c# - 从亚马逊 SimpleDB 迁移到 SQL Server