美文网首页
{MongDB} MongoDB Sharding

{MongDB} MongoDB Sharding

作者: windflow | 来源:发表于2016-08-29 15:42 被阅读0次

    概念

    MongoDB Shard Cluster

    分片集群由以下三个部分组成:
    Shard:分片
    mongos:路由
    config servers:存储元数据和配置


    sharded-cluster-production-architecture.png

    Shard Key

    Shard key必须是每个文档都含有的一个或多个不可变字段。
    对于非空集合,Shard Key上必须已经创建了索引。对于空集合,如果Key没有索引,MongoDB会自动为Key创建索引。

    Sharding Strategy

    哈希


    sharding-hash-based.png

    范围

    sharding-range-based.png

    标签感知

    sharded-cluster-tag-aware.png

    实际操作

    1. 创建Config Server副本集
      1.1 启动每个配置副本
      修改配置文件如下:
      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <setname>
      然后启动Mongod
      1.2 连接到某一台配置服务
      1.3 运行初始化命令
      rs.initiate(
      {
      _id : <replicaSetName>,
      members: [
      { _id : 0, host : "s1-mongo1.example.net:27017" },
      { _id : 1, host : "s1-mongo2.example.net:27017" },
      { _id : 2, host : "s1-mongo3.example.net:27017" }
      ]
      }
      )

    2. 创建分片副本集
      2.1 启动每一台分片
      修改配置文件如下:
      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <replSetName>

    2.2 连接到某一台
    2.3 初始化分片
    rs.initiate(
    {
    _id : <replicaSetName>,
    members: [
    { _id : 0, host : "s1-mongo1.example.net:27017" },
    { _id : 1, host : "s1-mongo2.example.net:27017" },
    { _id : 2, host : "s1-mongo3.example.net:27017" }
    ]
    }
    )

    1. Mongos
      3.1 启动Mongos
      修改配置如下:
      sharding:
      configDB: <configReplSetName>/cfg1.example.net:27017,cfg2.example.net:27017,...
      3.2 连接到Mongos
      3.3 将分片加到集群
      sh.addShard( "<replSetName>/s1-mongo1.example.net:27017")
      3.4 允许某个数据库分片
      sh.enableSharding("<database>")

    2. 集合分片
      sh.shardCollection("<database>.<collection>", { <key> : <direction> } )
      如果想要采用哈希策略。那么根据前面提到的,Shard Key需要已经建立了Hash Index。然后:
      sh.shardCollection( "database.collection", { <field> : "hashed" } )

    相关文章

      网友评论

          本文标题:{MongDB} MongoDB Sharding

          本文链接:https://www.haomeiwen.com/subject/jygxettx.html