【问题标题】:What should the dc_suffix in the cassandra-rackdc.properties be set to when using GoogleCloudSnitch in multi datacenter cluster?在多数据中心集群中使用 GoogleCloudSnitch 时,cassandra-rackdc.properties 中的 dc_suffix 应该设置为什么?
【发布时间】:2018-09-27 16:54:24
【问题描述】:

https://docs.datastax.com/en/cassandra/3.0/cassandra/architecture/archSnitchGoogle.html?hl=googlecloudsnitch

根据 Cassandra 的这些文档,当使用多个数据中心时,每个节点的 cassandra-rackdc.properties 都应该设置其 dc_suffix。但是,如果后缀可以是任意的或应该与某事相关,则不是很具体。有人可以详细说明一下吗?

我们的案例是我们将设置一个九节点集群并使用 GoogleCloudSnitch。对于这个问题,我们可以假设我们将拥有如下指定的集群:

  • 区域:europe-west1,区域:b、c、d(每个区域一个节点)
  • 区域:europe-west2,区域:a、b、c(每个区域一个节点)
  • 区域:europe-west3,区域:a、b、c(每个区域一个节点)

键空间将在所有数据中心上使用具有复制 3 的 NetworkTopologyStrategy。

上面链接中的文档指出数据中心名称区分大小写,因此我认为它应该是例如"dc_suffix=b" 用于 europe-west1 中的 b-zone 节点等,即使 docs 中的示例显示任意名称。只是希望得到确认,所以我认为正确,正确的 dc_suffix 是什么?

【问题讨论】:

    标签: cassandra


    【解决方案1】:

    TLDR;

    如果您使用的是 rackdc.properties 文件,则不必显式设置 “谷歌云飞贼”。相反,你只需要这个 “GossipingPropertyFileSnitch”。

    您的理解是正确的,在 rackdc.properties 文件中,“dc”和“Rack”的值可以是任意的。但重要的是要认识到集群中每个节点的“dc”值决定了它们属于哪个数据中心。类似地,“Rack”代表机器所在的那个“dc”中的哪个机架。

    因此,在您的情况下,“dc”将是“europe-west1”/“europe-west2”/“europe-west3”来配置 3 个数据中心。 “机架”值将分别为“a”/“b”/“c”/“d”。以这种方式配置 rackdc.porperties 文件将使您的“nodetool status”输出看起来像

        Datacenter: europe-west1
        =======================
        Status=Up/Down
        |/ State=Normal/Leaving/Joining/Moving
        --  Address    Load       Tokens  Owns    Host ID                               Rack
        UN  127.0.0.1  47.66 KB   1       33.3%   aaa1b7c1-6049-4a08-ad3e-3697a0e30e10  b
        UN  127.0.0.2  47.67 KB   1       33.3%   1848c369-4306-4874-afdf-5c1e95b8732e  c
        UN  127.0.0.3  47.67 KB   1       33.3%   49578bf1-728f-438d-b1c1-d8dd644b6f7f  d
    
        Datacenter: europe-west2
        =======================
        Status=Up/Down
        |/ State=Normal/Leaving/Joining/Moving
        --  Address    Load       Tokens  Owns    Host ID                               Rack
        UN  127.0.0.4  47.66 KB   1       33.3%   aaa1b7c1-6049-4a08-ad3e-3697a0e30e10  a
        UN  127.0.0.5  47.67 KB   1       33.3%   1848c369-4306-4874-afdf-5c1e95b8732e  b
        UN  127.0.0.6  47.67 KB   1       33.3%   49578bf1-728f-438d-b1c1-d8dd644b6f7f  c
    
        Datacenter: europe-west3
        =======================
        Status=Up/Down
        |/ State=Normal/Leaving/Joining/Moving
        --  Address    Load       Tokens  Owns    Host ID                               Rack
        UN  127.0.0.1  47.66 KB   1       33.3%   aaa1b7c1-6049-4a08-ad3e-3697a0e30e10  a
        UN  127.0.0.2  47.67 KB   1       33.3%   1848c369-4306-4874-afdf-5c1e95b8732e  b
        UN  127.0.0.3  47.67 KB   1       33.3%   49578bf1-728f-438d-b1c1-d8dd644b6f7f  c
    

    但如果您使用“GossipingPropertyFileSnitch”,则需要配置 rackdc.properties 文件。

    使用“GoogleCloudSnitch”,您无需明确配置此文件,仍可免费获得 Rack 和 DC 信息的好处。因为这个告密者告诉 Cassandra 自动推断 DC 和 Rack 值。

    【讨论】:

    • 只想再解决一件事,因为我意识到您的答案仅适用于在 Google 上使用单个数据中心时。在示例显示的具有多个数据中心的场景中,dc_suffix 会是什么?文档指出应该设置 dc_suffix 但这可以是任意的还是应该映射到特定的东西?请注意,我要求的是“dc_suffix”,而不是“dc”或“rack”。
    • 它本质上是一个“后缀”值,附加到您指定的“DC”值。如果使用 GoogleCloudSnitch 或 AWSSnitch 默认 DC 名称将是区域(例如 AWS 中的 us-east)。在 us-east 中,如果您想创建两个逻辑 DC,例如分析和 OLTP,您可以使用 dc_suffix = "-analytics" 启动某些节点,而使用 "-OLTP" 启动其他节点。它只是被附加到 DC“us-east”成为 us-east-analytics。
    猜你喜欢
    • 1970-01-01
    • 2013-06-11
    • 2015-03-25
    • 2016-03-24
    • 2020-07-27
    • 1970-01-01
    • 2015-08-02
    • 2022-11-09
    • 2018-12-13
    相关资源
    最近更新 更多