У меня есть набор реплик, состоящий из четырех узлов (ux002, ux009, ux019, ux020). У меня есть программа, которую я хотел бы запустить параллельно на каждом из тех же четырех узлов, которые подключаются к этому набору реплик с помощью драйвера Mongo Java.
Проверка состояния набора реплик показывает, что все четыре узла работают нормально, однако программа выдает следующее предупреждающее сообщение на всех четырех узлах:
12 ноября 2014 г. 14:34:40 Обновление com.mongodb.ConnectionStatus$UpdatableNode ПРЕДУПРЕЖДЕНИЕ: сервер не работает: ux009/127.0.1.1:27017 — java.io.IOException — сообщение: не удалось подключиться к [ux009/127.0. 1.1:27017] bc:java.net.ConnectException: в соединении отказано
Однако на каждом узле сервер, который не работает, — это тот, на котором запущена программа. т.е. Я запускаю программу на ux009, и она говорит мне, что ux009 не работает. Я запускаю его на ux002, он говорит мне, что ux002 не работает.
Я сделал до глупости простую программу, чтобы проверить, что с моим исходным кодом что-то не так, но то же самое предупреждение остается:
public static void main(String[] args) throws Exception {
List<ServerAddress> addrs = new ArrayList<>();
if (args.length == 0) {
addrs.add(new ServerAddress("localhost", 27017));
} else {
for (String a : args) {
String[] host = a.split(":");
addrs.add(new ServerAddress(host[0], Integer.valueOf(host[1])));
}
}
mongo = new Mongo(addrs);
Thread.sleep(5000); // Sleep to give it time to print messages
mongo.close();
}
И я запускаю его следующим образом:
java -jar mongo-test.jar ux002:27017 ux009:27017 ux019:27017 ux020:27017
Может быть, mongod
настроен неправильно? Или, может быть, я неправильно использую Java API?
Драйвер Mongo Java версии 2.9.3, а mongod версии 2.6.5.
Спасибо заранее! -Джим