【问题标题】:How to make sure your cassandra client is only aware of the local data center nodes?如何确保您的 cassandra 客户端只知道本地数据中心节点?
【发布时间】:2018-09-16 06:31:06
【问题描述】:

我有多个节点的多个数据中心,我需要让客户端首先连接到本地数据中心(最近的数据中心),如果本地数据中心(最近的数据中心)被关闭,让它连接到远程数据中心。

我添加了来自每个数据中心的两个联络点。

客户如何识别最近的数据中心?

我在客户端使用 java 驱动程序 3.0.0。

【问题讨论】:

    标签: cassandra cassandra-3.0


    【解决方案1】:

    From docDCAwareRoundRobinPolicy:

    该策略以循环方式查询本地数据中心的节点;可选地,如果所有本地主机都失败了,它还可以尝试远程数据中心中可配置数量的主机。

    致电withLocalDc 指定本地数据中心的名称。您也可以不使用它,驱动程序将使用在初始化时到达的第一个接触点的数据中心。但是,请记住,驱动程序会打乱初始的联系点列表,因此假设所有联系点都在本地数据中心中。通常,明确提供数据中心名称是更安全的选择。

    Cluster cluster = Cluster.builder()
           .addContactPoint("127.0.0.1")
           .withLoadBalancingPolicy(
                   DCAwareRoundRobinPolicy.builder()
                           .withLocalDc("myLocalDC")
                           .withUsedHostsPerRemoteDc(2)
                           .allowRemoteDCsForLocalConsistencyLevel()
                           .build()
           ).build();
    

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 2021-09-27
      • 2019-12-13
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      相关资源
      最近更新 更多