我有多个服务在多个EC2实例上运行,我需要一个全局计数器,服务的所有实例都可以访问。计数器需要支持设置/重置和增量操作。我第一次尝试构建它是使用SimpleDB,其中SimpleDB中的属性存储计数器值。但是,由于我预计会有非常多的请求访问计数器,因此SimpleDB被证明太贵了。对计数器的大多数请求都是获取请求,实际修改计数器值的请求非常少。
我想到的另一个选择是使用memcache缓存计数器值并使用SimpleDB作为计数器的持久存储。这应该会显着减少对SimpleDB的调用次数。但是因为我在服务中没有任何其他的memcache或SimpleDB使用,所以我需要不必要地为一个小功能管理两个额外的组件。
这个问题有没有标准解决方案?
答案 0 :(得分:0)
Redis有一个持久存储,除非你获得100%的内存使用量,否则你会遇到问题。您还可以在Redis中备份,主/从和转储数据库。
答案 1 :(得分:0)
我们最终决定使用SimpleDB。这很简单,很好地满足了我们的需求。