MongoDB集群分片部署
MongoDB中使用分片集群结构分布:

三个主要组件:
- Shard:
用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个replica set承担,防止主机单点故障
- Config Server:
mongod实例,存储了整个 ClusterMetadata,其中包括 chunk信息。
- Query Routers:
前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。
Shard 分片服,实例存储实际数据:
一个片区应该分布在不同机器上,片区采用副本集模式
副本集(replica set): 分为三个节点,主服,备服,仲裁服。在实际部署时,为了避免单点故障,同一个副本集中的成员,应该部署在不同主机上。

启动命令:
mongod --replSet=rs-test1 --dbpath=/data/mongodb/mongodb-4.4.2/shard1/db27017/ --port=27017 --logpath=/data/mongodb/mongodb-4.4.2/shard1/db27017/mongo.log --bind_ip=0.0.0.0 --shardsvr --fork
mongod --replSet=rs-test1 --dbpath=/data/mongodb/mongodb-4.4.2/shard1/db27018/ --port=27018 --logpath=/data/mongodb/mongodb-4.4.2/shard1/db27018/mongo.log --bind_ip=0.0.0.0 --shardsvr --fork
mongod --replSet=rs-test1 --dbpath=/data/mongodb/mongodb-4.4.2/shard1/db27019/ --port=27019 --logpath=/data/mongodb/mongodb-4.4.2/shard1/db27019/mongo.log --bind_ip=0.0.0.0 --shardsvr --fork
初始化:
mongo 127.0.0.1:27019
cfg={_id:"rs-test1", members:[{_id:0, host:'127.0.0.1:27017', arbiterOnly:true},{_id:1, host:'127.0.0.1:27018', priority:2},{_id:2, host:'127.0.0.1:27019', priority:1}]};
rs.initiate(cfg);
//查看副本集状态
rs.status()
ConfigServer 配置服
存储集群所有节点、分片数据路由信息。默认需要配置3个Config Server节点。
这里也应该是副本集模式,测试使用一个实例
mongod --replSet=rs-test-conf --dbpath=/data/mongodb/mongodb-4.4.2/dbconfig/ --port=27020 --logpath=/data/mongodb/mongodb-4.4.2/dbconfig/mongo.log --bind_ip=0.0.0.0 --fork --configsvr
初始化:
mongo 127.0.0.1:27020
cfg={_id:"rs-test-conf", members:[{_id:0, host:'127.0.0.1:27020', priority:2}]};
rs.initiate(cfg);
Mongos 路由
提供对外应用访问,所有操作均通过mongos执行。一般有多个mongos节点。数据迁移和数据自动平衡。
部署多个mongos实例可支持高可用性和可扩展性。一个常见的模式是在每个应用程序服务器上部署一个 mongos实例。
在每个应用服务器上部署一个 mongos实例可以减少应用程序和mongos之间的网络延迟。
另外,也可以在专用主机上部署 mongos实例。大型部署适用,因为它使客户端应用程序服务器的数量与mongos节点的数量脱钩,可以更好地控制mongod实例服务的连接数。
mongos --port 27030 --configdb=rs-test-conf/127.0.0.1:27020 --logpath=/data/mongodb/mongodb-4.4.2/route.log --bind_ip=0.0.0.0 --fork
添加分片:
mongo 127.0.0.1:27030
use admin;
sh.addShard("rs-test1/127.0.0.1:27017");
sh.addShard("rs-test1/127.0.0.1:27018");
sh.addShard("rs-test1/127.0.0.1:27019");
查看状态:
sh.status()
MongoDB集群分片部署的更多相关文章
- mongodb集群+分片部署(二)
机器:10.165.38.68 10.165.38.72 部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu. ...
- 搭建高可用mongodb集群—— 分片
从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出 ...
- MongoDB集群——分片
1. 分片的结构及原理分片集群结构分布: 分片集群主要由三种组件组成:mongos,config server,shard1) MONGOS数据库集群请求的入口,所有的请求都通过mongos进行协调, ...
- mongodb 集群分片
分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量,这 ...
- MongoDB集群部署 - 带访问控制的分片副本集
1. 前言 Ceilometer将meter.event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘 ...
- Mongodb副本集+分片集群环境部署记录
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- Mongodb副本集+分片集群环境部署
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- 搭建高可用mongodb集群(四)—— 分片(经典)
转自:http://www.lanceyan.com/tech/arch/mongodb_shard1.html 按照上一节中<搭建高可用mongodb集群(三)-- 深入副本集>搭建后还 ...
- [转]搭建高可用mongodb集群(四)—— 分片
按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...
随机推荐
- 5. Bean Validation声明式验证四大级别:字段、属性、容器元素、类
1024,代码改变世界.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众号[BAT的 ...
- h5 返回上一页面方法
//以下方法仅供参考1.返回上一页,不刷新history.html window.history.go(-1); javascript:window.history.go(-1) 2.返回上一页并刷 ...
- 《JavaScript高级程序设计》——第二章在HTML使用JavaScript
这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...
- viewpager欢迎页面底部点的滑动效果
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layo ...
- 【总结】springcloud
一.spirngcloud概述 1.springcloud是什么? spring cloud是一个一站式的开发分布式系统的框架,为开发人员提供了快速构建分布式系统中一些常见模式的工具(如:配置管理,服 ...
- undefined reference to 'mq_open'
验证 UNPv2里的一个例子时,连接时出现 undefined reference to 'mq_open' 错误. man mq_open ,发现里面有这么一句话 :link with -lrt . ...
- configfs_sample.c 理解
1. 编译运行 代码从如下链接获得: https://github.com/torvalds/linux/blob/master/samples/configfs/configfs_sample.c ...
- uniapp微信小程序canvas绘图插入网络图片不显示
网络图片缓存 在uni中wx可以用uni代替 无区别: 先把要插入的网络图片缓存(getImageInfo); let context = uni.createCanvasContext('first ...
- XJOI 夏令营501-511NOIP训练17 蛇形数阵
话说小X在孩提时,都会做标准的蛇形矩阵了,发现很好玩.现在的小X很想对其进行改版,变为如下类型的一个无限大蛇形数阵:令S(x)表示以1为左上角,x为右下角的矩形内所有数之和.例如S(12)就是具有深色 ...
- Javasript中this指向问题和改变this指向的方法
在学习javascript中我们往往会被this的指向问题弄的头昏转向,今天我们就来学习一下this的指向问题,和改变this指向的方法. 一.this的指向问题 在学习this的指向问题之前我们需要 ...