[Mongodb 5.0]配置副本集中的节点为隐藏节点

[Mongodb 5.0]配置副本集中的节点为隐藏节点,第1张

前言

副本集中的隐藏节点(Hidden members)是一个不能成为Primary节点并且在客户端不可见【1】的节点。隐藏节点虽然不能参加选举成为一个Primary节点,但是它可以参与投票。

隐藏节点主要用于支持延迟节点(Delayed member)

【1】客户端不可见是指例如通过mongosh后者java等是无法通过看到这个节点的

场景

现在我们如下表格的一个副本集,现在想将节点1变为隐藏节点

PSS模式(还有PSA模式)地址别名
Secondary192.168.40.128节点1
Primary192.168.40.129节点2
Secondary192.168.40.130节点3

步骤

第一步:在Primary节点上通过mongosh连接mongodb。

第二步:获取副本集的配置,然后赋值给变量

cfg = rs.conf()

 第三步:通过cfg这个变量将节点1修改为隐藏节点

cfg.members[1].priority = 0
cfg.members[1].hidden = true
#members[1]是因为要设置为隐藏节点的节点1在members数组索引1的位置上,看上图

要变为隐藏节点必须同时将hidden属性的值设置为true,将priority属性的值设置为0

第四步: 执行更新配置

rs.reconfig(cfg)

第五步:验证

此时在副本集的任何一个节点上执行rs.hello(),可以看到如下图中的返回信息中,节点1已经看不到。这也就是开头说的客户端不可见了。

 到此设置就成功了。

写在最后

当设置了属性settings.chainingAllowed​​​​​​https://www.mongodb.com/docs/manual/reference/replica-configuration/#mongodb-rsconf-rsconf.settings.chainingAllowed

允许Secondary节点从其他Secondary节点同步数据时,Mongodb默认会先考虑从可见节点上进行同步,最后才会考虑从隐藏节点上同步数据。 如果你想让其从隐藏节点上进行同步,需要通过 replSetSyncFrom命令来重写默认值,来指定从哪个目标(隐藏节点)上进行同步,命令用法如下:

db.adminCommand( { replSetSyncFrom: "hostname<:port>" })

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/924478.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存