有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在前一台主机被Datastax Java驱动程序关闭后,Cassandra尝试重新连接到下一台主机

Datastax Cassandra Java驱动程序是否为Cassandra连接到下一个可用主机提供回退机制
例如,,如果集群有4个主机节点,并且客户端应用程序连接到主机1。现在,当主机1关闭时,是否可以提供一种机制,让应用程序尝试连接到主机2,然后再连接到主机3&;等等

此外,
1)Datastax驱动程序提供了写入自定义重试策略的功能RetryPolicy(MyCustomRetryPolicy.RETRY_POLIOCY_INSTANCE);,但这会在出现错误时调用(ReadTimeout、writeTimeout、RequestError等),但在某个节点离开时,这不会得到调用
2)另一种方法是添加投机性执行政策withSpeculativeExecutionPolicy(new ConstantSpeculativeExecutionPolicy(10000,2)),但我不确定这是否解决了问题
cassandra的Java驱动程序是否提供了其他合适的机制,或者只有ProjectiveExecutionPolicy是唯一的选项


共 (1) 个答案

  1. # 1 楼答案

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

    如果你的情况没有回退,那么请分享更多细节