Nosql Mongodb之旅(27)—MongoDB Sharding分片
发布时间:2020-12-13 13:45:56 所属栏目:百科 来源:网络整理
导读:这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding 的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB 集群。 MongoDB 的数据分块称为 chunk。每个 chunk 都是 Collection 中一段连续的数据记录,通常最大尺寸是
这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding 的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB 集群。
MongoDB 的数据分块称为 chunk。每个 chunk 都是 Collection 中一段连续的数据记录,通常最大尺寸是 200MB,超出则生成新的数据块。要构建一个 MongoDB Sharding Cluster,需要三种角色: Shard Server 即存储实际数据的分片,每个Shard 可以是一个mongod 实例,也可以是一组mongod 实例 构成的Replica Set。为了实现每个Shard 内部的auto-failover,MongoDB 官方建议每个Shard 为一组Replica Set。 Config Server 为了将一个特定的collection 存储在多个shard 中,需要为该collection 指定一个shard key,例如{age: 1} ,shard key 可以决定该条记录属于哪个chunk。Config Servers 就是用来存储:所有shard 节点的配置信息、每个chunk 的shard key 范围、chunk 在各shard 的分布情况、该集群中所有DB 和collection 的sharding 配置信息。 Route Process 这是一个前端路由,客户端由此接入,然后询问Config Servers 需要到哪个Shard 上查询或保存记录,再连接相应的Shard 进行操作,最后将结果返回给客户端。客户端只需要将原本发给mongod 的查询或更新请求原封不动地发给Routing Process,而不必关心所操作的记录存储在哪个Shard 上。 下面我们在同一台物理机器上构建一个简单的 Sharding Cluster: 架构图如下:
Shard Server 1:20000 (1)启动三服务 启动Shard Server
(2)配置Sharding 接下来,我们使用MongoDB Shell 登录到mongos,添加Shard 节点
我们已经对test.users 表进行了分片的设置,下面我们们插入一些数据看一下结果
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SpringMVC环境下实现的Ajax异步请求JSON格式数据
- c# – 当Console应用程序使用完全相同的基本库执行完全相同
- 关于ajax 上传图片 enctype="multipart/form-data"
- Swift 简洁之道(下)
- 解析xml格式的string内容并修改节点内容
- Oracle Study之--Oracle time AND scn convert
- 按照首字拼音排序整理好的中国全城市XML文件
- postgresql 基础用法
- 使用Ruby WWW :: Mechanize时忽略Iconv :: IllegalSequence
- oracle秘境探索之11g tablespace prellocation