首页 文章

在以前的主机被Datastax Java Driver关闭后,Cassandra重新连接尝试下一个主机

提问于
浏览
0

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

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

1 回答

  • 0

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

    如果在您的情况下没有发生回退,请分享更多详细信息 .

相关问题