我在一个 DC 中有两个 C* 2.0.2 节点(在 cassandra.yaml 中有默认配置)和一个 RF=2 的键空间。两个客户端使用 Datastax Java 驱动程序 1.0.3 连接到此 DC。客户端使用 CL=ONE 从/向 C* 读取和写入数据,没有任何错误。但是当我关闭一个节点时,两个客户端都会出现大量异常:
com.datastax.driver.core.exceptions.NoHostAvailableException:
All host(s) tried for query failed (no host was tried)
在那一堆异常之后,客户端继续成功地与另一个仍然活着的节点一起工作。我应该怎么做才能收到任何 NoHostAvailableException 因为一次至少有一个活动节点并且使用了 CL=ONE?
更新: 当我关闭两个节点之一时,有时会在我的应用程序日志中看到以下异常:
[Reconnection-1] [ERROR] [Control connection] Cannot connect to
any host, scheduling retry
如果我只关闭一个节点,为什么两个节点都不可用?第二个现在还活着,我可以用 cqlsh 连接到它。