【问题标题】:Multiple Endpoints in Cassandra cluster ConnectionCassandra 集群连接中的多个端点
【发布时间】:2019-06-14 23:40:29
【问题描述】:

我想将配置文件中的多个 Cassandra 端点提供给我的 Java 应用程序。

例如: 卡桑德拉主机:“主机1,主机2”

我试过addContactPoints(host),但没用。如果其中一个 Cassandra 节点出现故障,我不希望我的应用程序出现故障。

cluster = Cluster.builder()
  .withClusterName(cassandraConfig.getClusterName())
  .addContactPoints(cassandraConfig.getHostName())
  .withSocketOptions(new SocketOptions().setConnectTimeoutMillis(30000).setReadTimeoutMillis(30000))
  .withPoolingOptions(poolingOptions).build();

【问题讨论】:

  • 你能分享一下你正在观察的异常吗?

标签: java cassandra datastax-java-driver


【解决方案1】:

Java 驱动程序对提供不可用的接触点之一具有弹性。接触点用于建立初始连接 [*]。只要驱动程序能够与一个接触点进行通信,它就应该能够查询system.peerssystem.local 表以发现集群中的其余节点。

* 它们也被添加到集群中的初始主机列表中,但通常提供的联系点映射到 system.peers 表中的节点。

【讨论】:

  • 如果我们提供的 IP 是 down 的意思,我们无法正确连接到集群。
  • 正确,通常您会希望为本地数据中心的多个节点提供 IP,以应对节点宕机影响使用集群初始化驱动程序的能力。只要司机能够与一个接触点进行通信,那应该没问题。
猜你喜欢
  • 2013-05-21
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 2018-05-08
  • 2021-12-09
  • 2018-08-31
  • 2016-12-07
  • 2013-10-19
相关资源
最近更新 更多