如何确保您的cassandra客户端只知道本地数据中心节点?
我有多个节点的多个数据中心,我需要让客户端先连接到本地数据中心(最近的数据中心),如果本地数据中心(最近的数据中心)被关闭,让它连接到远程数据中心 我从每个数据中心添加了两个联系人 客户将如何识别最近的数据中心 我在客户端使用java驱动程序3.0.0。如何确保您的cassandra客户端只知道本地数据中心节点?,cassandra,cassandra-3.0,Cassandra,Cassandra 3.0,我有多个节点的多个数据中心,我需要让客户端先连接到本地数据中心(最近的数据中心),如果本地数据中心(最近的数据中心)被关闭,让它连接到远程数据中心 我从每个数据中心添加了两个联系人 客户将如何识别最近的数据中心 我在客户端使用java驱动程序3.0.0。dcawarerRoundRobinPolicy: 该策略以循环方式查询本地数据中心的节点;或者,如果所有本地主机都出现故障,它还可以在远程数据中心尝试配置数量的主机 使用LocalDC调用,以指定本地数据中心的名称。您也可以省略它,并且驱动程序
dcawarerRoundRobinPolicy
:
该策略以循环方式查询本地数据中心的节点;或者,如果所有本地主机都出现故障,它还可以在远程数据中心尝试配置数量的主机
使用LocalDC调用
,以指定本地数据中心的名称。您也可以省略它,并且驱动程序将使用初始化时到达的第一个接触点的数据中心。但是,请记住,驱动程序会洗牌联系人的初始列表,因此这假设所有联系人都在本地数据中心。通常,显式提供数据中心名称是更安全的选择
Cluster cluster = Cluster.builder()
.addContactPoint("127.0.0.1")
.withLoadBalancingPolicy(
DCAwareRoundRobinPolicy.builder()
.withLocalDc("myLocalDC")
.withUsedHostsPerRemoteDc(2)
.allowRemoteDCsForLocalConsistencyLevel()
.build()
).build();