2013-06-18 2 views
0

Мы настроили MongoDB Replica Set, используя локальный IP-адрес сервера.Natted ip с ReplicaSet

config = {_id: 'Prod', members: [ {_id: 0, host: '10.10.194.22:27017'}, {_id: 1, host: '10.10.194.23:27017'}, {_id: 2, host: '10.10.194.24:27017'}, {_id: 3, host: '10.10.194.25:27017', arbiterOnly: true}] };

Он работает абсолютно нормально для меня. Проблема начинается, когда мы пытаемся заполнить данные из Eclips.

Мы соединяем БД с использованием общедоступного IP-адреса, который мы протестировали с помощью Mongo-Explorer.

При заполнении данных он пытается подключиться к локальному IP-адресу сервера &, что вызывает ошибку «время ожидания подключения».

-Tarak

ответ

0

При подключении к MongoDB как единый узел, то драйвер клиента будет подключаться по адресу, указанному.

Однако, если вы подключаетесь к MongoDB в качестве набора реплик, клиентский драйвер запрашивает у сервера конфигурацию набора реплик, а затем использует имена узлов или IP-адреса в настройке. Если узлы сервера базы данных недоступны для вашего клиента с использованием этих имен хостов или IP-адресов, это не сработает.

Если вы используете Java, разница в том, какой конструктор вы используете для объекта Mongo. Если вы используете один из конструкторов List, даже с одним объектом в списке, он будет подключаться как набор реплик, поэтому он не будет работать для вас. Другие драйверы имеют аналогичные механизмы, но вы не указали, какой драйвер вы используете.

Но если вы подключаетесь к одному узлу реплики, установленному как единый узел, это должно работать. Я бы не сказал, что это рекомендуется, но он должен работать.

+0

Спасибо, Джон работает ... –

Смежные вопросы