我目前在使用 MongoDB 的单个服务器上运行我的网站。在我的服务器上,我有两个组件 (1) 一个每小时运行的爬虫并将数据附加到我的 MongoDB 实例 (2) 一个从爬虫索引读取并写入用户个性化数据库的网站。我正在迁移到 Amazon EC2 进行自动扩展,以便网络服务器可以自动扩展,因此我可以随着网络流量的增加而增加服务器的数量。我的爬虫不需要自动缩放。这对我如何使用 MongoDB 提出了挑战。我想知道我最好的选择是优化
- 对我的代码的最小更改(代码在 perl 中)
- 能够无缝添加/删除 Web 服务器,而不必担心数据库中的数据丢失
- 低成本
在短期内,数据库肯定能够适应所有机器的内存,因为它将低于 2 GB。用户个性化数据库无法重建,因此拥有它更重要,而索引可以轻松重建。当前的 MongoDB 爬网索引有大约 100k 个条目,这些条目以大约 15 个不同的列为键。这是为速度而设计的,因为我正在开发一个在线约会网站(可以通过多种方式进行搜索)。
我能想到几个选项
- 使用 SimpleDB 作为用户个性化存储,使用 MongoDB 作为索引。让索引在所有机器上复制,但是,我对 MongoDB 复制不太了解。
- 将所有内容移至 SimpleDB
- 将所有内容移至 DynamoDB
我不太了解 SimpleDB 和/或 DynamoDB。根据文章,DynamoDB 似乎是一个自然的选择,但我不确定是否有良好的 perl 支持,我是否可以拥有所有列、索引等。有人有经验或有什么建议吗?