欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MongoDB: 一个简单的配置两个shared的例子

程序员文章站 2022-05-07 18:02:48
...

下面这个例子开启了两个shared服务,一个配置服务,一个mongos服务,所有这些服务都在同一台服务器上进行测试,当然也可以放在不

下面这个例子开启了两个shared服务,一个配置服务,一个mongos服务,所有这些服务都在同一台服务器上进行测试,当然也可以放在不同的服务器上。

1. 创建Shards

在本机上启动一对shared服务

2. 启动配置与mongos服务

下面要启动配置服务与mongos服务,

这里mongos不需要指定数据目录,它所需要的数据都是从配置服务器上得到的。当然这里的配置服务器也可以集群,这样可以提高可用性。

当然这里的两个shard和配置服务可以分布在不同的机器上,只要在这里指定相应的ip地址就行。这里为了测试,把所有服务都开在同一台服务器上。

NOTE: 要注意的是,mongos默认的chunk的大小为200M,你可以在启动mongos服务的时候设置chunk的大小,它以MB为单位,当两个shard进行数据平衡的时候,就会以chunk为单位进行数据迁移。

  • $ ./mongos --configdb localhost:20000 --chunkSize 1 > /tmp/mongos.log &
  • 这里设置chunkSize为1MB

    3. 连接mongos服务

    如果在本机连接服务的话只要./mongo命令就可以,它默认的连接端口号为27017,当然你也可以连接远程的服务器, 这里要指定机器ip地址。

    下面我们连接mongos后进行shard的配置。

    下面你要说明要对哪个数据库进行分块,,而且数据库中的表要指定相应的一个key或多个keys,这里为用来对数据进行切分用的。

    4. 看一下数据库的状态

    这些表包括了分块配置的所有的信息。

    5. 分块与复制的关系。

    数据的分块就相当于对数据库进行scale out,所集中管理的数据分到不同的单点上去管理,以提高数据库的可扩展性。前面所讲的复制是提高数据的可用性而准备的,它不会因为一个节点的故障而影响数据的可用性。

    看一下面的图就知道明白了,一个是横向扩展(shared),另一个是纵向扩展(replication),从而形成了一个数据阵列。

    MongoDB: 一个简单的配置两个shared的例子

    MongoDB: 一个简单的配置两个shared的例子