AWS上的分布式计数器

时间:2011-11-24 05:45:56

标签: memcached amazon-web-services counter distributed-computing amazon-simpledb

我有多个服务在多个EC2实例上运行,我需要一个全局计数器,服务的所有实例都可以访问。计数器需要支持设置/重置和增量操作。我第一次尝试构建它是使用SimpleDB,其中SimpleDB中的属性存储计数器值。但是,由于我预计会有非常多的请求访问计数器,因此SimpleDB被证明太贵了。对计数器的大多数请求都是获取请求,实际修改计数器值的请求非常少。

我想到的另一个选择是使用memcache缓存计数器值并使用SimpleDB作为计数器的持久存储。这应该会显着减少对SimpleDB的调用次数。但是因为我在服务中没有任何其他的memcache或SimpleDB使用,所以我需要不必要地为一个小功能管理两个额外的组件。

这个问题有没有标准解决方案?

2 个答案:

答案 0 :(得分:0)

Redis有一个持久存储,除非你获得100%的内存使用量,否则你会遇到问题。您还可以在Redis中备份,主/从和转储数据库。

答案 1 :(得分:0)

我们最终决定使用SimpleDB。这很简单,很好地满足了我们的需求。