如何在4节点2 DC Cassandra群集中处理仲裁一致性

如何在4节点2 DC Cassandra群集中处理仲裁一致性,cassandra,Cassandra,我有一个四节点、两个数据中心的cassandra 1.1.1集群。 我的键空间是每个数据中心的RF 2,为我提供每个节点上数据的完整副本。 集群用于供应商产品,该产品使用r/w一致性仲裁。使用此配置,我只能处理一个节点的丢失。。。。我如何调整它以处理数据中心丢失的问题?除非您的数据中心位于同一物理位置,否则此配置将导致严重的网络开销。原因是仲裁一致性在比较副本时不会注意DC。因此,在确认读或写操作之前,您将经常需要跨越数据中心线。切换到本地仲裁将解决延迟问题,但如果一个节点发生故障,将有效地导致

我有一个四节点、两个数据中心的cassandra 1.1.1集群。 我的键空间是每个数据中心的RF 2,为我提供每个节点上数据的完整副本。
集群用于供应商产品,该产品使用r/w一致性仲裁。使用此配置,我只能处理一个节点的丢失。。。。我如何调整它以处理数据中心丢失的问题?

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


话虽如此,一般的经验法则是每个数据中心至少有3个节点。如果向每个数据中心添加一个节点并切换到本地仲裁R/W,则可能会丢失每个DC中的一个节点,而该DC仍在运行,或者可能会丢失整个DC,而另一个DC仍在运行。

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


话虽如此,一般的经验法则是每个数据中心至少有3个节点。如果向每个数据中心添加一个节点并切换到本地仲裁R/W,则每个DC中可能会丢失一个节点,而该DC仍在运行,或者可能会丢失整个DC,而另一个仍在运行。

供应商拒绝从仲裁切换到本地仲裁。在DC关闭的情况下,如何获得法定人数r/w?如果DC宕机,按需添加另一个节点??动态添加节点不是一个好的选择,因为您的令牌所有权将被破坏,并且在引导过程中您也会宕机。系统的哪些部分在您的控制之下?好吧,关于代币,我现在对每个DC进行复制系数2。我可以添加一个幻影/虚拟DC节点,但它实际上与其他DC在同一个DC中。。。只是头脑风暴。集群和RF由我控制,但不是使用RC QUORUM的供应商cass客户端代码。RF不确定令牌所有权,只确定创建了多少副本。您仍然只有一个“所有者”。2.如果客户端不使用节点自动发现或可以将其关闭,则可以像分析群集一样设置第二个DC(请参阅)。然后,您只向一个DC写入数据,而另一个DC将获得一组可用于故障切换的副本。由于客户端正在使用仲裁,您需要对其隐藏第二个DC,并且仅在第一个DC失败时使用该DC。供应商拒绝从仲裁切换到本地仲裁。在DC关闭的情况下,如何获得法定人数r/w?如果DC宕机,按需添加另一个节点??动态添加节点不是一个好的选择,因为您的令牌所有权将被破坏,并且在引导过程中您也会宕机。系统的哪些部分在您的控制之下?好吧,关于代币,我现在对每个DC进行复制系数2。我可以添加一个幻影/虚拟DC节点,但它实际上与其他DC在同一个DC中。。。只是头脑风暴。集群和RF由我控制,但不是使用RC QUORUM的供应商cass客户端代码。RF不确定令牌所有权,只确定创建了多少副本。您仍然只有一个“所有者”。2.如果客户端不使用节点自动发现或可以将其关闭,则可以像分析群集一样设置第二个DC(请参阅)。然后,您只向一个DC写入数据,而另一个DC将获得一组可用于故障切换的副本。由于客户机正在使用仲裁,您需要对其隐藏第二个DC,并且仅在第一个DC失败时使用该DC。