NoSQL   发布时间:2022-05-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Nosql Mongodb之旅(27)—MongoDB Sharding分片大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在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
 Shard Server 2:20001
 Config Server :30000
 Route Process:40000

(1)启动三服务

启动Shard Server

[plain] view plain copy
  1. mkdir-p/data/shard/s0--创建数据目录
  2. mkdir-p/data/shard/s1
  3. mkdir-p/data/shard/log--创建日志目录
  4. /Apps/mongo/bin/mongod--shardsvr--port20000--dbpath/data/shard/s0--fork--logpath
  5. /data/shard/log/s0.log--directoryperdb--启动ShardServer实例1
  6. /Apps/mongo/bin/mongod--shardsvr--port20001--dbpath/data/shard/s1--fork--logpath
  7. /data/shard/log/s1.log--directoryperdb--启动ShardServer实例2
启动Config Server
    mkdir-p/data/shard/config--创建数据目录
  1. /Apps/mongo/bin/mongod--configsvr--port30000--dbpath/data/shard/config--fork--logpath
  2. /data/shard/log/config.log--directoryperdb--启动configserver实例

大佬总结

以上是大佬教程为你收集整理的Nosql Mongodb之旅(27)—MongoDB Sharding分片全部内容,希望文章能够帮你解决Nosql Mongodb之旅(27)—MongoDB Sharding分片所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: