MongoDB分片集群之configsvr

Jackey MongoDB 2,332 次浏览 没有评论

mongodb分片

一般用得比较少,需要较多的服务器,还有三种的角色

一般把mongodb的副本集应用得好就足够用了,可搭建多套mongodb复本集

 

mongodb分片技术

mongodb副本集可以解决数据备份、读性能的问题,但由于mongodb副本集是每份数据都一模一样的,无法解决数据量过大问题

mongodb分片技术能够把数据分成两份存储,假如shijiange.myuser里面有1亿条数据,分片能够实现5千万左右存储在data1,5千万左右存储在data2

data1、data2需要使用副本集的形式,预防数据丢失

 

mongodb分片集群三种角色介绍

router角色 #mongodb的路由,提供入口,使得分片集群对外透明。router不存储数据

configsvr角色 #mongodb的配置角色,存储元数据信息。分片集群后端有多份存储,读取数据该去哪个存储上读取,依赖于配置角色。配置角色建议使用副本集

shardsvr角色 #mongodb的存储角色,存储真正的数据,建议使用副本集

 

依赖关系

当用户通过router角色插入数据时,需要从configsvr知道这份数据插入到哪个节点,然后执行插入动作插入数据到sharedsvr

当用户通过router角色获取数据时,需要从configsvr知道这份数据是存储在哪个节点,然后再去sharedsvr获取数据

 

mongodb分片集群的搭建说明

使用同一份mongodb二进制文件

修改对应的配置就能实现分片集群的搭建

 

mongodb分片集群实战环境搭建说明

configsvr #使用28017,28018,28019三个端口来搭建

router #使用27017,27018,27019三个端口来搭建

shardsvr #使用29017,29018,29019,29020四个端口来搭建,两个端口一个集群,生产环境肯定是要三个端口

 

mongodb配置角色的搭建,配置文件路径/data/mongodb/28017/mongodb.conf

systemLog:

  destination: file

  logAppend: true

  path: /data/mongodb/28017/mongodb.log

storage:

  dbPath: /data/mongodb/28017/

  journal:

    enabled: true

processManagement:

  fork: true

net:

  port: 28017

  bindIp: 127.0.0.1

replication:

  replSetName: shijiangeconf #副本集名称

sharding:

  clusterRole: configsvr #角色

 

 

mongodb配置服务集群的启动跟单例的启动方式一致,都是使用mongod

 

分片集群的配置角色副本集搭建

config = { _id:"shijiangeconf",

  configsvr: true,

  members:[

    {_id:0,host:"127.0.0.1:28017"},

    {_id:1,host:"127.0.0.1:28018"},

    {_id:2,host:"127.0.0.1:28019"}

  ]

}

rs.initiate(config)

 

验证是否搭建成功

/usr/local/mongodb/bin/mongo 127.0.0.1:28017

rs.status()

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Go