【Mongo】架构从复制集到分片集群

时间:2021-11-27 08:42:16

一. 复制集(Replica Set)

    Members:

  1. Primary
    接收所有写请求
    默认接受读请求
  2. Secondary
    优先级0的节点
    隐藏节点
    延时节点
  3. Arbiter
    保证投票节点奇数个

    Architecture:

【Mongo】架构从复制集到分片集群

    Sync:

  1. Initial Sync
    同步所有库、创建索引,复制oplog
  2. Replication
    oplog (capped collection)

    Elected:

    成员之间2s会发送一次心跳信息,10s未收到某个节点的心跳,则认为该节点已宕机

    【Mongo】架构从复制集到分片集群

    

    如果宕机的节点为PrimarySecondary(前提是可被选为Primary)会发起新的Primary选举,拥有最新optime(最近一条oplog的时间戳)的节点才能被选为主。

    【Mongo】架构从复制集到分片集群

二.分片集群(Shareded Cluster)

    components:

  1. shard 
    数据分片,一个分片是一个复制集
  2. config server
    配置服务,3.4以后要求必须是复制集,它的集合存储的是集群的配置信息
  3. mongos
    路由器,从配置服务获取集群信息,把请求路由到对应的分片

    Architecture:

    【Mongo】架构从复制集到分片集群

    分片是在集合层次上,一个集合需要手动开启分片

    【Mongo】架构从复制集到分片集群

    chunks & shardkey

    ShardKey决定数据所属的chunk,chunk最大64M;

    Chunk通过分裂和迁移在分片集群中完成平衡;

    Sharding Strategy

  1. Hash Sharding
    【Mongo】架构从复制集到分片集群
  2. Ranged Sharding
    【Mongo】架构从复制集到分片集群