Cassandra在同一台服务器上的不同数据中心有多个节点

时间:2015-09-02 13:37:27

标签: cassandra-2.0

只想知道我是否可以在同一物理服务器上配置来自不同数据中心的多个节点。示例 - 希望拥有2个数据中心,每个数据中心有3个节点。每个数据中心的1个节点将位于每台服务器上。

总共2个数据中心,3个物理服务器上的6个节点。

2 个答案:

答案 0 :(得分:3)

您可以按照描述进行技术配置;但是,DataCenter通常被认为是一个位置,因此将节点放在两个位置但配置为数据中心会让人感到困惑(特别是对于以后需要对环境进行故障排除的人)。

最佳做法是在每个数据中心中建立3个节点的拓扑(实际上物理上位于每个数据中心)。然后,您可以将群集配置为在两个数据中心中获取数据以获得可用性,并在单个数据中心内为所有读取,写入等提供适当的延迟......

例如,在每个数据中心使用RF:3然后使用LOCAL_QUORUM的一致性将平衡数据可用性,同时减少请求的延迟。此示例配置将确保读取/写入发生在单个数据中心(比数据中心的延迟更低),但确保数据在两个数据中心之间保存(最终一致的设计)。

答案 1 :(得分:0)

是的,可以按照您列出的拓扑结构进行操作,但请考虑以下情况

在单台机器上使用来自不同DC的两个节点,很有可能在两个不同数据中心节点中的单台机器上复制数据单元。如果单台机器出现故障,您将丢失一份数据的两份副本。

假设您拥有DC1:2 DC2:2的RF并使用Quorum的CF,您将需要3个节点来响应读取请求。如果一个物理服务器关闭,则一个数据单元将丢失2个副本,并且您的读取将失败,实际上具有相同CF的写入也将失败。