Недавно я настроил кластер Cassandra с двумя узлами. Коэффициент репликации установлен на 2, и они оба работают хорошо, если оба узла включены. Теперь, как я могу использовать hector таким образом, чтобы он продолжал работать, пока работает хотя бы один узел? На данный момент у меня есть что-то вроде следующего.
CassandraHostConfigurator cassandraHostConfigurator = new CassandraHostConfigurator(
"localhost:9160,xx.xx.13.22:9160");
cassandraHostConfigurator.setMaxActive(20);
cassandraHostConfigurator.setMaxIdle(5);
cassandraHostConfigurator.setCassandraThriftSocketTimeout(3000);
cassandraHostConfigurator.setMaxWaitTimeWhenExhausted(4000);
Cluster cluster = HFactory.getOrCreateCluster("structspeech",
cassandraHostConfigurator);
Keyspace keyspace = HFactory.createKeyspace("structspeech", cluster);
....
Допустим, если хост xx.xx.13.22 выходит из строя, я получаю следующее сообщение в своей консоли, и все мои вставки терпят неудачу, пока этот узел не появится.
Downed xx.xx.13.22(xx.xx.13.22):9160 host still appears to be down: Unable to open transport to xx.xx.13.22(xx.xx.13.22):9160 , java.net.ConnectException: Connection refused: connect
Вот как определяется мое пространство ключей
update keyspace structspeech with placement_strategy =
'org.apache.cassandra.locator.SimpleStrategy'
and strategy_options =[{replication_factor:2}];
Я уверен, что мне не хватает чего-то очень тривиального, любая помощь будет принята с благодарностью. Спасибо