Rae*_*ald 5 java cassandra datastax-java-driver
在尝试连接到群集时,如何告诉Datastax Java Cassandra驱动程序超时?
我对主机可以访问的情况特别感兴趣,但是Cassandra端口被阻塞或者Cassandra守护进程没有运行.我正在编写一个命令行客户端,如果它无法在合理的时间内连接,它应该退出并报告合适的错误消息.目前,如果联系点可以到达,驱动程序似乎将永远等待接触点响应.
也就是说,如果驱动程序无法在给定的最大时间内与任何接触点的Cassandra守护程序通信,我想Cluster.build()抛出一个NoHostAvailableException.
RetryPolicy不起作用:那是为了重试查询,我希望在我们准备好运行查询之前应用超时.ReconnectinoPolicy最初看起来很有希望,但是接口的合同没有提供任何指示"认为这个节点永远死了"的方法小智 7
也就是说,如果驱动程序无法在给定的最大时间内与任何联系点的Cassandra守护进程通信,我希望Cluster.build()抛出NoHostAvailableException.
应该是这种情况.驱动程序将尝试连接到每个联系点,如果无法连接到任何联系点,则抛出异常.您可以通过SocketOptions.setConnectTimeoutMillis()控制驱动程序尝试连接(到每个节点)的最长时间(默认值为5秒).
我的经验是,如果没有节点可以连接,Cluster.build()确实会返回异常,但如果您的经验不同,您可能希望将其报告为错误(但有关如何重现这一点的更多细节会有所帮助) .
话虽如此:
| 归档时间: |
|
| 查看次数: |
3277 次 |
| 最近记录: |