MongoError:在replicaset中找不到主IP地址(Mongoose将gcloud上的外部IP地址替换为内部地址)

MongoError:在replicaset中找不到主IP地址(Mongoose将gcloud上的外部IP地址替换为内部地址),mongoose,google-compute-engine,node-mongodb-native,Mongoose,Google Compute Engine,Node Mongodb Native,(交叉过帐) 这是最新版本的mongodb-3.4.0(mongo:docker的最新版本),我已经在googlecomputeengine上安装了一个mongo集群。每个mongo服务器都有一个外部和一个内部IP地址 我可以使用相同的nodejs代码连接到各个mongo节点。但当我加入两个IP地址时(mongodb://IP-ADDR1,IP-ADDR2)我得到“未发现主要错误” 从类似的日志中,mongodb连接到URL中的每个服务器,并获取拓扑相关数据结构(ismaster),如下所示 伊

(交叉过帐)

这是最新版本的
mongodb-3.4.0
(mongo:docker的最新版本),我已经在googlecomputeengine上安装了一个mongo集群。每个mongo服务器都有一个
外部
和一个
内部
IP地址

我可以使用相同的nodejs代码连接到各个mongo节点。但当我加入两个IP地址时(mongodb://IP-ADDR1,IP-ADDR2)我得到“未发现主要错误”

从类似的日志中,mongodb连接到URL中的每个服务器,并获取拓扑相关数据结构(ismaster),如下所示

伊斯马斯特[{“主人”:[“10.60.4.5:27017”,“10。 60.4.6:27017“],“设置名称”:“rs0”,“设置版本”:4,“ismaster”:false,“secondary”:true,“primary”:“10.60.4.5:27017”,“me”:“10。 60.4.6:27017,“lastWrite”:{“opTime”:{“ts”:“636730957638445953”,“t”:1},“lastWriteDate”:“2016-12-23T14:53:07.000Z”},m axBsonObjectSize“:16777216,“maxMessageSizeBytes”:48000000,“maxWriteBatchSize”:1000,“localTime”:“2016-12-23T14:53:13.7 21Z,“maxWireVersion”:5,“minWireVersion”:0,“readOnly”:false,“ok”:1}]

这里可以看到,
ismaster.me
与用于调用connect命令的
IP-ADDR
不同(ismaster.me是内部IP地址)。接下来,mongo从种子列表中删除原始IP地址,如下所示:

[警告回复集:9532]1482504793904由于以下原因,种子列表服务器已被删除: 地址104.197.115.7:27017与ismaster.me不匹配 地址10.60.4.6:27017{键入:“警告”

最后,这将导致“
在replicaset中找不到主副本”

更长的日志详细信息发布在链接-

蒂亚


请让我知道我的分析是否正确,以及我们是否知道解决问题的方法。

收到了Mongodb nodejs本地驱动程序团队的回复(通过Christian Amor Kvalheim)

这是预期的行为replicaset配置是replicaset的规范源,并且是驱动程序用于连接、监视和发现新成员的配置。如果您不使这些成员可解析,则需要修改主机文件以包含它们以进行本地dns解析