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示例"中,你可能还会看到如何处理分片集群、索引创建、聚合框架、事务处理等高级特性。这个示例将帮助你全面掌握Java与MongoDB的整合,从而在实际项目中充分利用MongoDB的优势。 总之,"mongodb-...
一、MongoDB分片概念 1. 分片集群:由多个MongoDB服务器组成的系统,包括分片服务器、路由进程(Mongos)和配置服务器(Config Server)。路由进程负责处理客户端请求,确定数据应存储或检索的位置,并将请求转发到...
在MongoDB分片群集中,有三个关键组件: 1. **Shard Server**:这是实际存储数据的MongoDB实例,通常以副本集(Replica Set)的形式存在,以确保高可用性和数据安全性。每个Shard Server负责一部分数据,这样当数据...
本示例主要介绍如何在Windows环境下搭建一个单机版的MongoDB分片式集群,为理解分布式集群的工作原理提供了实践平台。 首先,我们来了解"分片"这一概念。在MongoDB中,分片(Sharding)是解决大数据存储和查询性能...
- **Sharding**:分片,是MongoDB中的水平数据分区方法。 - **Primary**:主节点,副本集中的主服务器,负责处理所有的写操作。 - **Secondary**:副本节点,同步主节点的数据,可以被提升为新的主节点。 - **...
本文将深入探讨MongoDB中的副本集和分片技术,并通过示例进行详细解释。 ### 副本集(Replica Set) #### 副本集原理 副本集是一种数据复制策略,用于提供数据冗余和高可用性。在一个副本集中,数据会被复制到多个...
4. 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。 5. Mongo 支持丰富的查询表达式。查询指令使用 JSON 形式的标记,可轻易查询文档中内嵌的对象...
它支持JSON格式的文档,具有灵活的数据模型和自动分片功能。 4. **Spring Data MongoDB**: 这是Spring Data的一个模块,专门用于与MongoDB集成。它提供了MongoTemplate和MongoOperations接口,用于执行数据库操作,...
5. 分片和复制集支持:驱动能够处理MongoDB的分片集群和复制集,确保在分布式环境下的数据可用性和一致性。 6. 异步操作:所有数据库操作都支持异步执行,适应高并发的应用场景。 7. 扩展性:通过实现自定义策略,...
7. **分片和复制集**:当数据量增长时,了解如何设置分片和复制集以实现水平扩展和高可用性。 8. **错误处理和异常**:熟悉Java MongoDB驱动程序中的异常处理机制,以确保程序的健壮性。 通过掌握这些知识点,你...
5. **分片集群**:对于大规模数据,测试数据可能涉及分片配置,让你了解如何通过分片扩展数据库的存储和处理能力。 6. **性能基准测试**:可能包含用于性能基准测试的脚本,帮助你评估MongoDB在不同工作负载下的...
在给出的示例中,有四个分片(shard88、shard87、shard86 和 shard61),每个分片由两个成员构成,例如: ```bash numactl --interleave=all /path/to/mongod --dbpath=/path/to/data --logpath=/path/to/log --...
- **分片集群**:由多个分片服务器组成的集群,每个分片服务器存储一部分数据。 - **配置服务器**:用于存储集群元数据的服务器。 - **路由服务器**:作为客户端与分片集群之间的中间件,负责将请求路由到正确的分片...
2. **弹性伸缩**: 通过分片和复制集功能,MongoDB可以轻松扩展到大量数据和高流量环境。 3. **丰富的查询API**: MongoDB提供了类似于SQL的查询语句,同时支持JavaScript进行复杂的数据操作。 在这个demo中,你可能...
- 分区键(PartitionKey)在MongoDB中称为分片键(ShardKey) 10. MongoDB文档示例: MongoDB的文档是一种以BSON格式存储的数据结构,类似于JSON。文档包含一个唯一的_id字段,可以通过ObjectId进行索引,字段可以...
- 集群:MongoDB支持分片集群,可以水平扩展存储和处理能力。这需要多个MongoDB实例,并通过配置分片策略来分散数据。 - 复制集:复制集提供了冗余和故障转移,可以设置多个数据副本。在Windows 7上配置复制集,...