如何将基于Java的Cassandra客户端连接到Cassandra集群而不是特定节点?

Zug*_*dud 3 java cassandra

我正在尝试学习Cassandra并设置了一个4节点的Cassandra集群.我使用Hector编写了一个Java客户端,它目前连接到集群中的硬编码单个节点.理想情况下,我希望我的客户端连接到"集群"而不是特定节点....所以如果4个节点中的任何一个节点关闭,客户端仍将连接到某个东西.从客户端应用程序的角度来看,这是如何工作的?我似乎无法找到一个好的解释.

我的Hector连接字符串当前,我需要在这里指定一个特定的节点:

Cluster c = getOrCreateCluster("Test Cluster", cassandraNode1:9160);
Run Code Online (Sandbox Code Playgroud)

我的Cassandra节点都配置了我的rpc_address:0.0.0.0

DNA*_*DNA 5

如果传递CassandraHostConfiguratorgetOrCreateCluster(),则可以将多个节点指定为以逗号分隔的字符串:

  public CassandraHostConfigurator(String hosts) {
    this.hosts = hosts;
  }

  ...

  String[] hostVals = hosts.split(",");

  CassandraHost[] cassandraHosts = new CassandraHost[hostVals.length];
  ...
Run Code Online (Sandbox Code Playgroud)