【发布时间】:2017-02-05 06:25:02
【问题描述】:
如果我没记错的话,可以连接到 Cassandra 集群,知道集群中的至少一个节点,然后可以发现其他节点。
假设我有三个节点(1、2 和 3),我像这样连接到这些节点:
Cluster.builder().addContactPoints("1,2,3".split(",")).build();
然后,例如,如果节点 3 出现故障,并且无法解析 IP,则这行代码将抛出 IllegalArgumentException,如文档中所述:
@throws IllegalArgumentException if no IP address for at least one of {@code addresses} could be found
为什么会有人想要这种行为?我的意思是,如果其中一个节点出现故障,我希望应用程序能够运行,因为 Cassandra 仍然可以正常工作。
我已经检查了这个Cassandra Java driver: how many contact points is reasonable? 但这并不能回答我的问题,因为它没有说明主机无法访问。
我应该如何处理?也许这在另一个版本的 java 驱动程序中有所改变?我目前正在使用cassandra-driver-core-3.0.3
【问题讨论】: