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解析