我们已使用服务器的本地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
答案 0 :(得分:0)
如果您将MongoDB作为单个节点连接,则客户端驱动程序将与您指定的地址连接。
但是,如果您将MongoDB作为副本集连接,则客户端驱动程序将向服务器请求副本集配置,然后使用配置中的主机名或IP地址。如果使用这些主机名或IP地址无法从客户端访问数据库服务器节点,则无法使用。
如果您使用的是Java,那么区别在于您用于Mongo对象的构造函数。如果您使用List contstructors之一,即使List中只有一个对象,它也将作为副本集连接,因此它不适合您。其他驱动程序具有类似的机制,但您没有提到您正在使用的驱动程序。
但是,如果您将副本集的一个节点连接为单个节点,那么这应该可行。我不会说它是推荐的,但它应该有用。