一. 复制集(Replica Set)
Members:
- Primary
接收所有写请求
默认接受读请求 - Secondary
优先级0的节点
隐藏节点
延时节点 - Arbiter
保证投票节点奇数个
Architecture:
Sync:
- Initial Sync
同步所有库、创建索引,复制oplog - Replication
oplog (capped collection)
Elected:
成员之间2s会发送一次心跳信息,10s未收到某个节点的心跳,则认为该节点已宕机
如果宕机的节点为Primary,Secondary(前提是可被选为Primary)会发起新的Primary选举,拥有最新optime(最近一条oplog的时间戳)的节点才能被选为主。
二.分片集群(Shareded Cluster)
components:
- shard
数据分片,一个分片是一个复制集 - config server
配置服务,3.4以后要求必须是复制集,它的集合存储的是集群的配置信息 - mongos
路由器,从配置服务获取集群信息,把请求路由到对应的分片
Architecture:
分片是在集合层次上,一个集合需要手动开启分片
chunks & shardkey
ShardKey决定数据所属的chunk,chunk最大64M;
Chunk通过分裂和迁移在分片集群中完成平衡;
Sharding Strategy
- Hash Sharding
- Ranged Sharding