gpt4 book ai didi

MongoDB 如何知道副本集中的主数据库服务器 ip?

转载 作者:IT老高 更新时间:2023-10-28 11:06:18 26 4
gpt4 key购买 nike

我在 3 个节点上运行 mongodb 副本集,让他们的 ip 分别为 192.168.1.100 , 192.168.1.101,192.168.1.102

现在在当前副本集中 192.168.1.100 是主要的,192.168.1.101 和 192.168.1.102 是次要的,我的应用程序连接到 192.168.1.100 以进行写入操作。现在 2 天后 192.168.1.100 关闭并且 mongodb select 192.168.1.101作为初级。我的应用程序如何知道 192.168.1.101 是主要的。

他们是 mongodb 中的任何 float ip 概念,因此当主服务器切换到副本集时不需要手动工作。

最佳答案

显然,您应该能够使用您的“驱动程序”(mongo cli 工具或您的首选语言绑定(bind),例如 node-mongo)连接到副本集的任何成员。连接后,只需询问当前 mongod 为集合的其他成员服务:

> db.runCommand("ismaster")
{
"ismaster" : false,
"secondary" : true,
"hosts" : [
"ny1.acme.com",
"ny2.acme.com",
"sf1.acme.com"
],
"passives" : [
"ny3.acme.com",
"sf3.acme.com"
],
"arbiters" : [
"sf2.acme.com",
]
"primary" : "ny2.acme.com",
"ok" : true
}

对于我来说,重要的是不要连接到主节点。像 OP 一样,我想尽量减少查找次要成员所需的连接数。这个方法应该适合你,但是这里的文档可能有点过时了。

http://docs.mongodb.org/meta-driver/latest/legacy/connect-driver-to-replica-set/

关于MongoDB 如何知道副本集中的主数据库服务器 ip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16292391/

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