RF 3 の 3 ノード クラスタがあります。
クラスターから 1 つのノードを排出するとすぐに、多数のノードが表示されます。
All host(s) tried for query failed (no host was tried)
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (no host was tried)
at com.datastax.driver.core.exceptions.NoHostAvailableException.copy(NoHostAvailableException.java:84)
at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)
at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:214)
at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:52)
すべての書き込みと読み取りは整合性レベル QUORUM または ONE で行われるため、ノードが 1 つダウンしてもすべてが完全に機能するはずです。ただし、ノードがダウンしている限り、例外がスローされます。
Cassandra 2.2.4 + Java Cassandra Driver 2.1.10.2 を使用
クラスターを作成する方法は次のとおりです。
new Cluster.Builder()
.addContactPoints(CONTACT_POINTS)
.withCredentials(USERNAME, PASSWORD)
.withRetryPolicy(new LoggingRetryPolicy(DefaultRetryPolicy.INSTANCE))
.withReconnectionPolicy(new ExponentialReconnectionPolicy(10, 10000))
.withLoadBalancingPolicy(new TokenAwarePolicy(new RoundRobinPolicy()))
.withSocketOptions(new SocketOptions().setReadTimeoutMillis(12_000))
.build();
CONTACT_POINTS は、ノードの 3 つのパブリック IP の文字列配列です。
数か月前、クラスターは一時的に 2 つのノードのみで正常に動作していましたが、理由は不明ですが、もうそうではなく、アイデアが不足しています :(
助けてくれてどうもありがとう!