[Mongodb 5.0]设置副本集中节点的优先级属性priority
前言:本文对应Adjust Priority for Replica Set Member — MongoDB Manualpriority的值在选择Primary节点时会起到作用,每个节点都会有这个属性值,他的值越大,就会优先被选为primary节点。文本将对这个属性值的修改操作进行讲解场景:当前我们已经搭建了一个副本集(如果还未搭建可参考前面的文章)如下:PSS模式(还有PSA模式)地址别名P
前言:
本文对应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存在一定的关系,如下:
更多推荐
所有评论(0)