admin管理员组文章数量:1623791
前言:
本文对应Adjust Priority for Replica Set Member — MongoDB Manual
priority的值在选择Primary节点时会起到作用,每个节点都会有这个属性值,他的值越大,就会优先被选为primary节点。文本将对这个属性值的修改操作进行讲解
场景:
当前我们已经搭建了一个副本集(如果还未搭建可参考前面的文章)如下:
PSS模式(还有PSA模式) | 地址 | 别名 |
Primary | 192.168.40.128 | 节点1 |
Secondary | 192.168.40.129 | 节点2 |
Secondary | 192.168.40.130 | 节点3 |
现在为了能在节点1这个Primay节点出现问题时,让节点2有更高的优先级级来成为Primary节点,所以需要进行一些设置。
步骤
第一步:找到副本集中的Primary节点,然后通过mongosh连接到mongodb
第二步:使用如下命令获取到副本集中的配置信息,并赋值给变量(后面将通过这个变量修改配置)
cfg = rs.conf()
命令执行完后,会将所有的节点打印出来如下图:
第三步:通过上面的变量cfg来修改某个节点的优先级属性priority的值,如下:
cfg.members[2].priority = 2 #members[2]是因为我要修改的节点在配置中索引为2的位置上,看上图
第四步:通过下面命令更新副本集的配置
rs.reconfig(cfg) #cfg就是上面定义的变量
第五步:验证
再次执行rs.config(),看到里面我们修改的节点的中的priority的值为更改过的2就对了。
然后执行db.hello(),会看到节点3已经成为Primary节点了
到此关于priority的修改操作就完成了。
写在最后
关于priority属性的值,下面还有一些需要注意的点
1. priority的取值范围为0到1000,默认值为1
2. 如果不想让某个节点参加选举或者想把某个节点设置为隐藏节点(Hidden Member)或者延迟节点(Delayed Member),那么也需要把priority的值设置为0
3. Arbiter节点的priority的值也是0
4. 设置优先级会导致当前primary下台(取消自己作为Primary节点),然后进行重新选举。
另外在【步骤中第二步】的截图中,我们会发现还有一个叫做votes的属性,它与priority存在一定的关系,如下:
- Non-voting (i.e. votes is
0
) members must have priority of 0.
意思就是说votes为0时,priority的值也必须是0 - Members with priority greater than 0 cannot have 0 votes.
意思就是说priority值大于0时,votes的值不能为0
版权声明:本文标题:[Mongodb 5.0]设置副本集中节点的优先级属性priority 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728895829a1178392.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论