gpt4 book ai didi

mongoose - MongoError : no primary found in replicaset (Mongoose replaces external IP addresses on gcloud with internal addresses)

转载 作者:行者123 更新时间:2023-12-04 20:33:11 44 4
gpt4 key购买 nike

(交叉发帖 https://github.com/Automattic/mongoose/issues/4834)

这是mongodb - 3.4.0的最新版本(mongo:latest from docker) 我在谷歌计算引擎上安装了一个 mongo 集群。每个 mongo 服务器都有一个 external和一个 internal IP address .

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

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

ismaster [{"hosts":["10.60.4.5:27017","10. 60.4.6:27017"],"setName":"rs0","setVersion":4,"ismaster":false,"secondary":true,"primary":"10.60.4.5:27017","me":"10. 60.4.6:27017","lastWrite":{"opTime":{"ts":"6367309576328445953","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.meIP-ADDR 不同用于调用connect命令(ismaster.me是内部IP地址)。之后,mongo 从种子列表中删除原始 IP 地址,如下所示:

[WARN-ReplSet:9532] 1482504793904 the seedlist server was removed due to its address 104.197.115.7:27017 not matching its ismaster.me address 10.60.4.6:27017 { type: 'warn'



最后这导致' no primary found in replicaset '

更长的日志详细信息发布在链接 - https://github.com/Automattic/mongoose/issues/4834

TIA。

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

最佳答案

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

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

http://mongodb.github.io/node-mongodb-native/2.2/reference/faq/

关于mongoose - MongoError : no primary found in replicaset (Mongoose replaces external IP addresses on gcloud with internal addresses),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41307098/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com