`

【转】Mongodb分片示例

 
阅读更多

Mongodb分片实现

 

1、定义

ConfigServer    localhost:10000,

MongosServer localhost:20000,

Shard1Server   localhost:30001,

Shard2Server   localhost:30002,

Shard3Server   localhost:30003(分片完成以后再添加)

2、测试数据结构

{

  _id:1,

  name:'zhangsan',

  age:21,

  birthday:randomdate

}

3、开始

先看一张结构图:

从上图中可以看出Shard server、Mongos server以及Config server之间的关系,Mongos起路由的作用,配置服务器保存各个shard服务器的配置信息,客户端不会直接同shard打交道,而是连接mongos服务器,下面开始启动各个服务器:

先启动配置服务器

每个配置服务器都是一个mongod实例,启动一个Mongodb实例作为配置服务器

bin/mongod –dbpath ../data/config –-port 10000

然后启动mongos服务器

需要指定配置服务器的地址

bin/mongod –configdb localhost:20000

启动两个mongod实例作为shard

bin/mongod –dbpath ../data/shard1 –-port 30001

bin/mongod –dbpath ../data/shard2 –-port 30002

都启动以后,就要开始配置了

  • mongo连接刚才的mongos服务器的admin数据库

        bin/mongolocalhost:2000/admin

        然后执行addshard命令,因为是在一台电脑上,所以要指定allowLocal属性为true

        db.runCommand({addshard:”localhost:30001”,allowLocal:true})

        db.runCommand({addshard:”localhost:30002”,allowLocal:true})

然后就可以对集合进行分片了

还是在刚刚的shell里面,切换到admin数据库,执行以下命令:

db.runCommand({“enablesharding”:”ShardDemo”});

db.runCommand({“shardcollection”:”ShardDemo.users”,”key”:”birthday”})

 

到这里,分片就算完成了,使用客户端插入数据试试,这里我用java语言:

这是30001的数据

这是30002的数据

因为按照birthday分片,所以数据库将当前日期之前的数据放在了30001,大于当前时间的放在了30002

加我QQ,一起交流:240035336

 

转自 http://gjdrift.diandian.com/post/2012-10-04/40039646455

分享到:
评论

相关推荐

    mongodb-demo示例

    在"mongodb-demo示例"中,你可能还会看到如何处理分片集群、索引创建、聚合框架、事务处理等高级特性。这个示例将帮助你全面掌握Java与MongoDB的整合,从而在实际项目中充分利用MongoDB的优势。 总之,"mongodb-...

    mongoDB分片技术处理方案

    一、MongoDB分片概念 1. 分片集群:由多个MongoDB服务器组成的系统,包括分片服务器、路由进程(Mongos)和配置服务器(Config Server)。路由进程负责处理客户端请求,确定数据应存储或检索的位置,并将请求转发到...

    配置mongodb分片群集1

    在MongoDB分片群集中,有三个关键组件: 1. **Shard Server**:这是实际存储数据的MongoDB实例,通常以副本集(Replica Set)的形式存在,以确保高可用性和数据安全性。每个Shard Server负责一部分数据,这样当数据...

    colony(自己做的MongoDb分片式集群搭建配置).rar

    本示例主要介绍如何在Windows环境下搭建一个单机版的MongoDB分片式集群,为理解分布式集群的工作原理提供了实践平台。 首先,我们来了解"分片"这一概念。在MongoDB中,分片(Sharding)是解决大数据存储和查询性能...

    MongoDB 集群配置示例之 sharding 模式

    - **Sharding**:分片,是MongoDB中的水平数据分区方法。 - **Primary**:主节点,副本集中的主服务器,负责处理所有的写操作。 - **Secondary**:副本节点,同步主节点的数据,可以被提升为新的主节点。 - **...

    Mongodb副本集和分片示例详解

    本文将深入探讨MongoDB中的副本集和分片技术,并通过示例进行详细解释。 ### 副本集(Replica Set) #### 副本集原理 副本集是一种数据复制策略,用于提供数据冗余和高可用性。在一个副本集中,数据会被复制到多个...

    Mongodb入门教程、示例+Spring Boot完整示例+聚合.docx

    4. 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。 5. Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象...

    Spring3+Spring-data-mongodb1.5.6示例

    它支持JSON格式的文档,具有灵活的数据模型和自动分片功能。 4. **Spring Data MongoDB**: 这是Spring Data的一个模块,专门用于与MongoDB集成。它提供了MongoTemplate和MongoOperations接口,用于执行数据库操作,...

    MongoDB 官方C#驱动源码+简单示例

    5. 分片和复制集支持:驱动能够处理MongoDB的分片集群和复制集,确保在分布式环境下的数据可用性和一致性。 6. 异步操作:所有数据库操作都支持异步执行,适应高并发的应用场景。 7. 扩展性:通过实现自定义策略,...

    Java操作MongoDB数据库示例分享

    7. **分片和复制集**:当数据量增长时,了解如何设置分片和复制集以实现水平扩展和高可用性。 8. **错误处理和异常**:熟悉Java MongoDB驱动程序中的异常处理机制,以确保程序的健壮性。 通过掌握这些知识点,你...

    mongodb-测试数据

    5. **分片集群**:对于大规模数据,测试数据可能涉及分片配置,让你了解如何通过分片扩展数据库的存储和处理能力。 6. **性能基准测试**:可能包含用于性能基准测试的脚本,帮助你评估MongoDB在不同工作负载下的...

    2012 mongodb 最新的sharding配置

    在给出的示例中,有四个分片(shard88、shard87、shard86 和 shard61),每个分片由两个成员构成,例如: ```bash numactl --interleave=all /path/to/mongod --dbpath=/path/to/data --logpath=/path/to/log --...

    mongodb3.2.4说明文档

    - **分片集群**:由多个分片服务器组成的集群,每个分片服务器存储一部分数据。 - **配置服务器**:用于存储集群元数据的服务器。 - **路由服务器**:作为客户端与分片集群之间的中间件,负责将请求路由到正确的分片...

    play2+scala+mongodb demo示例

    2. **弹性伸缩**: 通过分片和复制集功能,MongoDB可以轻松扩展到大量数据和高流量环境。 3. **丰富的查询API**: MongoDB提供了类似于SQL的查询语句,同时支持JavaScript进行复杂的数据操作。 在这个demo中,你可能...

    MongoDB简介与实践.pdf

    - 分区键(PartitionKey)在MongoDB中称为分片键(ShardKey) 10. MongoDB文档示例: MongoDB的文档是一种以BSON格式存储的数据结构,类似于JSON。文档包含一个唯一的_id字段,可以通过ObjectId进行索引,字段可以...

    mongodb Windows7 64位

    - 集群:MongoDB支持分片集群,可以水平扩展存储和处理能力。这需要多个MongoDB实例,并通过配置分片策略来分散数据。 - 复制集:复制集提供了冗余和故障转移,可以设置多个数据副本。在Windows 7上配置复制集,...

Global site tag (gtag.js) - Google Analytics