使用ReplicaSet对象ip

时间:2013-06-18 18:26:27

标签: mongodb

我们已使用服务器的本地IP配置了MongoDB副本集。

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

1 个答案:

答案 0 :(得分:0)

如果您将MongoDB作为单个节点连接,则客户端驱动程序将与您指定的地址连接。

但是,如果您将MongoDB作为副本集连接,则客户端驱动程序将向服务器请求副本集配置,然后使用配置中的主机名或IP地址。如果使用这些主机名或IP地址无法从客户端访问数据库服务器节点,则无法使用。

如果您使用的是Java,那么区别在于您用于Mongo对象的构造函数。如果您使用List contstructors之一,即使List中只有一个对象,它也将作为副本集连接,因此它不适合您。其他驱动程序具有类似的机制,但您没有提到您正在使用的驱动程序。

但是,如果您将副本集的一个节点连接为单个节点,那么这应该可行。我不会说它是推荐的,但它应该有用。