Heim  >  Artikel  >  Datenbank  >  MongoDB:mongodb的分片技术

MongoDB:mongodb的分片技术

WBOY
WBOYOriginal
2016-06-07 15:23:091336Durchsuche

MongoDB有另外一种集群技术,就是MongoDB的分片技术。 一、MongoDB的分片 MongoDB采用将集合进行拆分,然后将拆分的数据分别均摊到不同的片上的一种解决方案。 下面我们看下结构图: 人脸:代表客户访问端 mongos:片键是拆分的依据,按照什么样的键值进行拆

MongoDB有另外一种集群技术,就是MongoDB的分片技术。

一、MongoDB的分片

MongoDB采用将集合进行拆分,然后将拆分的数据分别均摊到不同的片上的一种解决方案。

下面我们看下结构图:

\

人脸:代表客户访问端

mongos:“片键”是拆分的依据,按照什么样的键值进行拆分集合...mongos就是一个路由器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群中,数据和片的对应关系以及相关的配置信息保存在“config服务器”上。

mongod:数据库实例。

二、实际操作下

首先我们准备四个mongodb

\

1、开启config服务器

mongos要把mongod之间的配置信息放在config里

config
mongod --dbpath=F:\mongodb\bin --port 1111

\

2、开启mongos服务器

开启mongos服务器,同时指定config,在此我们开启我F盘的mongodb2,端口指定为2222.

mongos
mongos --port 2222 --configdb=127.0.0.1:1111

\

3、开启mongod

在此对应我F盘的mongdb3、mongodb4,端口分别为3333、4444

mongod --dbpath=F:\mongodb3\bin --port 3333
mongod --dbpath=F:\mongodb4\bin --port 4444
\

三、进行配置

1、根据结构图所知,客户是直接和mongos打交道的,我们直接连接mongos服务器,将端口为3333、4444的mongod服务器添加分片到mongos。

mongo 127.0.0.1:2222/admin
db.runCommand({"addshard":"127.0.0.1:3333",allowlocal:true})
db.runCommand({"addshard":"127.0.0.1:4444",allowlocal:true})
开启test库的分片功能
 mongos> use admin 
    switched to db admin
    mongos> db.runCommand({"enablesharding":"test"})
    { "ok" : 1 }
 mongos> db.runCommand({"shardcollection":"test.user","key":{"_id":1}})
  { "collectionsharded" : "test.user", "ok" : 1 } 

①:开启数据库分片功能,命令很简单 enablesharding(),这里我就开启test数据库。

②:指定集合中分片的片键,这里我就指定为user._id字段。

四 查看效果

用命令:db.printShardingStatus() 查看就行。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn