参考:https://www.cnblogs.com/littleatp/p/8562842.html
https://www.cnblogs.com/ilifeilong/p/14347008.html
MongoDB副本集
MongoDB副本集是由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点。客户端的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持副本集内所有成员存储相同的数据集,实现数据的高可用。
1. 副本集角色
- 主节点Primary:接受所有的写请求,然后把修改同步到所有Secondary,一个副本集只能有一个Primary节点,当Primary挂掉后,其他的Secondary或者Arbiter节点会重新选举出来一个主节点;
- 副本节点Secondary
- 仲裁者Arbiter:不保存数据,不能作为主节点,只进行选主投票,使用Arbiter可以减轻数据存储到硬件需求;
2. 两种架构模式
2.1 PSS
Primary + Secondary + Seconda,该模式下副本集节点数比虚伪奇数,使得选主投票时出现大多数(节点总数N,大多数N/2 + 1)的情况。
2.2 PSA
Primary + Secondary + Arbiter,偶数个数据节点 + 一个Arbiter节点。