在设置mongodb副本集时,Primary节点,second节点,仲裁节点,有可能资源配置(CPU或者内存)不均衡,所以要求某些节点不能成为Primary
我们知道mongodb的设置:
除了仲裁节点,其他每个节点都有个优先权,可以手动设置优先权来决定谁的成为primay的权重最大。
副本集中通过设置priority的值来决定优先权的大小,这个值的范围是0--100,值越大,优先权越高。
默认的值是1,rs.conf是不显示的;
如果值是0,那么不能成为primay。
设置priority两种方式:
1.可以在初始化时候,这样配置:
> config_repl={_id:'gechongrepl',members:[
... {_id:0,host:'192.168.91.128:27017',priority:10},
... {_id:1,host:'192.168.91.129:27017',priority:9},
... {_id:2,host:'192.168.91.130:27017',priority:9}]}
2.通过修改priority的值来实现,默认在初始化不设置的话默认为1
且priority的取值范围在0-100之间,值越大优先级越高,成为主的优先权越大。
在主节点运行如下命令:
1)PRIMARY> rscfg=rs.conf()
2)PRIMARY>rscfg.members[0].priority = 3
3)PRIMARY> rs.reconfig(rscfg)
注意:第2步members大括号里面的成员和_id是没有关系的,而是rs.conf查出来节点的数值的顺序;
就如图所示101显示_id为2,但在members是第一个为members[0]。