【发布时间】:2016-04-03 22:00:46
【问题描述】:
我目前正在考虑使用 Cassandra 处理世界各地客户的最佳方式。我想我在美国和欧洲都有服务器。是否有一种机制可以影响数据存储在哪些服务器上?对于美国用户,数据应托管在美国服务器上,而在欧洲只有一份安全副本。一般来说,我在考虑可以识别为某个位置的 UUID。例如,如果设置了最后一位,则它应该在美国的服务器上,否则在欧洲的服务器上。然后我正在考虑编写一个自定义分区器,它将值分配给美国服务器范围内的值。例如,如果它以 00-7f 开头是欧洲,而 80-ff 是在美国。所以我可以使用一个普通的 Murmur3,它根据 UUID 中的位置信息设置第一位。我可以影响某个服务器的分区范围吗?我认为,尤其是对于虚拟节点,这可能会变得复杂。有没有办法实现所需的基于服务器位置的分区选择?您将如何尝试解决这个问题?
【问题讨论】:
标签: cassandra location uuid partition