呃,写了一上午,结果一个闪失,没了。csdn的bug和不方便还是很多!
对于Secondary来说有三个比较重要的属性。
Priority=0
优先级为0的节点的概述
字面上来说,权限为0。拥有最低的权限。已然是Secondary了,权限还最低,啥影响呢?之前说过,mongoDB的副本集中是有投票机制的,如果一个Primary不可达(关于不可达后面还说详细说),那么所有的Secondary会联合起来投票选举,选出心目中的新的Primary。因为只有Primary才能接收Writes的操作,所以Primary在一个mongoDB的集群中是必须的。下图展示了一个在两个IDC中存放Primary,Secondary,以及一个Priority=0的Secondary的场景(关于这个存放方式以及奇数偶数,有必要在后面单拿出来好好说说,这个问题困扰了我一个晚上无法安心入睡T..T)
优先级为0的节点的特点
- 此节点丧失了当选Primary的机会。永远不会上位。
- 此节点正常参与Primary产生的oplog的读取,进行数据备份和命令执行。
- 此节点正常参与客户端对于数据的读取,进行担当负载均衡的工作。
- 此节点虽然不能当选Primary但是却可以投票,很民主。
Priority=0在mongoDB中的解