【发布时间】:2013-01-22 10:15:35
【问题描述】:
我正在使用计数器列在我的网站上计算帖子和许多其他内容,我有很多流量,例如每小时 10k+ cmets。
所以我想要实现的是,一旦发布并增加了计数器,我想检索确切的值,但由于两个用户很有可能同时请求该值,我会得到重复这很糟糕。
有没有办法在增加计数器后检索精确值?
【问题讨论】:
-
这里是类似问题的答案:stackoverflow.com/questions/9038530/…
我正在使用计数器列在我的网站上计算帖子和许多其他内容,我有很多流量,例如每小时 10k+ cmets。
所以我想要实现的是,一旦发布并增加了计数器,我想检索确切的值,但由于两个用户很有可能同时请求该值,我会得到重复这很糟糕。
有没有办法在增加计数器后检索精确值?
【问题讨论】:
Cassandra 的计数器不支持通用原子计数器实现的“递增和获取”语义。所以你要问的是 Cassandra 的计数器是不可能的。原因是如果没有副本之间的协调以确保返回的值始终是最新的,这是不可能的。
为此,您需要一个具有原子语义的分布式系统,例如 ZooKeeper。一个可以解决 ZooKeeper 问题的线程在这里:http://www.mail-archive.com/zookeeper-user@hadoop.apache.org/msg01967.html。
【讨论】: