gpt4 book ai didi

java - 如何使用所有四个节点连接到cassandra数据库

转载 作者:行者123 更新时间:2023-12-02 07:05:30 27 4
gpt4 key购买 nike

我最近开始使用 Cassandra 数据库,并且使用 Netflix 客户端来填充和读取 Cassandra 数据库中的数据。

我有一个包含四个节点的集群。我创建了这样的键空间-

        create keyspace profilekeyspace
with placement_strategy = 'NetworkTopologyStrategy'
and strategy_options = {DC2 : 1, DC1 : 1}
and durable_writes = true;

我的列族名称是 - profile_columnfamily

这是我的四个节点-

      lp-host01.vip.slc.qa.host.com:9160
lp-host02.vip.slc.qa.host.com:9160
lp-host03.vip.phx.qa.host.com:9160
lp-host04.vip.phx.qa.host.com:9160

现在,我仅使用上面的一个节点来连接到 Cassandra 数据库并填充数据。但我的 DBA 说,您需要使用所有四个节点来建立连接。

private AstyanaxContext<Keyspace> context;

private CassandraAstyanaxConnection() {

context = new AstyanaxContext.Builder()
.forCluster("TEST CLUSTER")
.forKeyspace("PROFILE")
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)
)
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool")
.setPort(9160)
.setMaxConnsPerHost(1)
.setSeeds("lp-host01.vip.slc.qa.host.com:9160:9160")//using only node from above to make the connection
)
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()
.setCqlVersion("3.0.0")
.setTargetCassandraVersion("1.2"))
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
.buildKeyspace(ThriftFamilyFactory.getInstance());

context.start();
keyspace = context.getEntity();

emp_cf = ColumnFamily.newColumnFamily(
"PROFILE_COLUMNFAMILY",
StringSerializer.get(),
StringSerializer.get());
}

现在我不确定如何使用所有四个节点通过 Netflix 客户端进行连接?谁能帮我解决这个问题吗?

感谢您的帮助。

最佳答案

种子列表是逗号分隔的列表。因此,您只需在 setSeeds 调用中添加其余部分即可:

setSeeds("服务器1:9160,服务器2:9160,服务器3:9160")

此外,Astyanax 将发现环中的其他服务器。您只需列出一个即可发现所有其他服务器,但如果该服务器出现故障,您需要列出更多服务器。它非常类似于 cassandra.yaml 中的种子列表。

请注意,您已在行中复制了端口:

.setSeeds("lp-host01.vip.slc.qa.host.com:9160:9160")

关于java - 如何使用所有四个节点连接到cassandra数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com