У меня есть набор реплик, состоящий из четырех узлов (ux002, ux009, ux019, ux020). У меня есть программа, которую я хотел бы запускать параллельно на каждом из четырех узлов, которые подключаются к этой реплике с использованием драйвера Mongo Java.Соединение MongoDB отказалось от локального узла при подключении к набору реплик
Изучение состояния набора реплик показывает, что все четыре узла работают хорошо, однако программа выдает следующее предупреждающее сообщение на всех четырех узлов:
12 ноября 2014 2:34:40 PM ком .mongodb.ConnectionStatus $ Обновление обновляемого обновления ПРЕДУПРЕЖДЕНИЕ: Снятый сервер: ux009/127.0.1.1: 27017 - java.io.IOException - сообщение: не удалось подключиться к [ux009/127.0.1.1: 27017] bc: java.net. ConnectException: Соединение отклонено
Однако на каждом узле сервер, который отображается вниз, является тем, который показан програми m работает. То есть Я запускаю программу на 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 - баночка монго-test.jar ux002: 27017 ux009: 27017 ux019: 27017 ux020: 27017
Может быть, mongod
не настроен правильно? Или, возможно, я злоупотребляю API Java?
Драйвер Mongo Java версии 2.9.3, а mongod - версия 2.6.5.
Большое спасибо заранее! -Джим
У вас есть набор bind_ip? Если это так, возможно, MongoDB не настроен на прослушивание на localhost. Вы также можете дважды проверить журнал mongod, чтобы убедиться, что он запущен, проверьте наличие ошибок и дважды проверьте номер порта. – helmy
Также возможно стоит обновить до последнего драйвера Java, если это возможно, 2.12.4 должен быть последним. – helmy
Привет, helmy, спасибо! Похоже, что mongod был запущен с привязкой bind_ip к IP-адресу первичного узла. Кажется, все работает сейчас :) – jrwilliams