2012-11-20 55 views
1

我有一个四节点,两个数据中心cassandra 1.1.1集群。 我的密钥空间是每个数据中心的RF 2,给我在每个节点上的完整数据副本。 群集适用于供应商产品,该产品使用QUORUM的r/w一致性。有了这个配置,我只能处理一个节点的丢失....我如何调整它来处理数据中心的丢失?如何处理4个节点中的QUORUM一致性,2个DC Cassandra集群

回答

4

除非您的数据中心位于相同的物理位置,否则您的网络开销将会非常糟糕。原因是因为仲裁一致性在比较副本时不会注意到DC。因此,在进行读或写操作之前,您经常需要跨越数据中心线。切换到本地仲裁将解决延迟问题,但如果一个节点出现故障,则会导致数据中心停机。但是,只要第二个DC中的两个节点都启动(并且您的应用程序可以正确处理此问题),您仍然可以启动并运行。

话虽如此,一般的经验法则是3个节点是每个数据中心的最小值。如果向每个数据中心添加一个节点并切换到本地仲裁R/W,则每个DC中可能会丢失一个节点,并且仍然可以使用该DC,否则可能会丢失整个DC并使其他节点保持正常运行。

+0

供应商拒绝从QUORUM切换到LOCAL_QUORUM。我怎样才能得到一个DC的法定人数r/w?如果DC关闭,请按需添加另一个节点? –

+0

动态添加节点并不是一个好的选择,因为您的令牌所有权将会被搞砸,并且无论如何您都会在启动时关闭。系统的哪些部分在您的控制之下? –

+0

那么,关于令牌,我现在正在为每个DC做复制因子2。我可以添加一个幻像/虚拟直流节点,但其真正与其他DC相同......只是头脑风暴。群集和RF由我控制,但不是使用RC QUORUM的供应商cass客户端代码。 –

相关问题