【问题标题】:Cassandra Re-Connection attempt to next host after previous host is down by Datastax Java Driver在上一个主机被 Datastax Java 驱动程序关闭后,Cassandra 重新连接到下一个主机的尝试
【发布时间】:2018-07-16 13:17:33
【问题描述】:

Datastax Cassandra Java 驱动程序是否为 cassandra 连接到下一个可用主机提供回退机制?
例如,如果集群有 4 个 Host 节点,并且客户端应用程序连接到 Host-1。现在,当 Host-1 关闭时,是否可以提供应用程序尝试连接的机制到 Host-2,然后到 Host-3 ... 以此类推!!!

此外,
1) Datastax 驱动程序提供了编写自定义重试策略 RetryPolicy(MyCustomRetryPolicy.RETRY_POLIOCY_INSTANCE); 的工具,但它会在出现错误(ReadTimeout、writeTimeout、RequestError 等)时调用,但此时,当一个节点离开时,这不会被调用。
2) 另一种方法是添加 SpeculativeExecutionPolicy withSpeculativeExecutionPolicy(new ConstantSpeculativeExecutionPolicy(10000,2)),但我不确定这是否能解决问题?
cassandra的Java驱动程序是否提供了任何其他适当的机制或SpeculativeExecutionPolicy是唯一的选择?

【问题讨论】:

    标签: java cassandra datastax datastax-java-driver cassandra-3.0


    【解决方案1】:

    Cassandra Java 驱动程序仅使用第一个节点来发现集群中的其他节点。然后它使用配置的策略连接到节点 - 默认情况下它是令牌感知/数据中心感知策略。第一部分意味着驱动程序“知道”哪个节点负责处理具有给定分区键的数据,第二部分是知道节点所在的位置。您当然可以自定义您的策略,但默认设置应该没问题。更多信息在the official docs

    如果您的情况没有发生后备,请分享更多详细信息。

    【讨论】:

      猜你喜欢
      • 2016-03-27
      • 2017-02-05
      • 2018-11-15
      • 2017-07-05
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 1970-01-01
      相关资源
      最近更新 更多