首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cassandra中的地理分区

cassandra中的地理分区
EN

Stack Overflow用户
提问于 2015-04-16 13:12:30
回答 1查看 857关注 0票数 1

我目前正计划设置一个服务,该服务迟早会在全球范围内提供,并且对可用性和容错性提出了更高的要求。将有一个较高的阅读率和高写入率,该系统应该能够按需缩放。

我计划提供的服务的一个更特殊的特性是,数据将被极强地绑定到某个地理位置--例如,在99.99%的情况下,美国城市的数据将永远不会被来自欧洲的查询(实际上,即使是某个城市的数据也不太可能从该城市旁边的城市查询)。

我想要减少的是:

  1. 行政管理费用
  2. 网络延迟
  3. 不必要的数据复制(我不希望完全复制在美国欧洲的数据)

在存储技术方面,我认为我最好的存储解决方案是cassandra。我看到的用例选项是:

  1. 在每个地理位置使用完全隔离的cassandra集群,并结合手动配置的路由服务,在每个插入/选择查询中选择正确的集群。
  2. 部署全局集群并为某些地理位置定义多个数据中心,以确保该区域的高可用性。
  3. 部署全局集群而不使用数据中心
  4. 在不使用数据中心的情况下部署全局集群,并将分区操作为具有地理感知能力。我在这里的计划是根据地理位置来操作分区的前3位键(例如:1000:北美,001:南美洲,010:非洲,011:南欧/西欧,等等)并使用哈希算法(类似于cassandras随机分配器)分配剩余位。

解决方案1的缺点可能是巨大的管理开销和大量的手工工作;第二种解决方案的缺点将是大量不必要的数据复制;第三种解决方案的缺点将是由于世界各地的随机分区而导致的网络延迟相当高。

因此,在理论上,我最喜欢解决方案4。在这里,我将拥有相当数量的管理开销、低数量的不必要的数据复制和良好的可用性。然而,要实现这一点(据我所知),我需要一个ByteOrderPartitioning,这在很多方面都是非常不推荐的。

是否有一种方法可以在不使用ByteOrderPartitioning的情况下实现接近解决方案4的解决方案,或者是在ByteOrderPartitioning可能有意义的情况下,还是我遗漏了一个明显的第五个解决方案?

EN

回答 1

Stack Overflow用户

发布于 2015-04-16 13:37:23

重新考虑备选案文2。

它不仅能解决你的问题。它甚至会为你解决地理冗余问题。正如您所提到的,您需要具有高可用性。在不同的数据中心中拥有一个副本听起来不错,以防其中一个数据中心死亡。

如果您完全不想在DC之间进行复制,那么这也是一个选项。您可以在不同区域上拥有多个DC,而无需在它们之间进行复制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29675799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档