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集群分片部署的更多相关文章

  1. mongodb集群+分片部署(二)

    机器:10.165.38.68    10.165.38.72 部署包:mongodb-linux-x86_64-rhel55-3.0.2.tgz(百度云盘下载地址:http://pan.baidu. ...

  2. 搭建高可用mongodb集群—— 分片

    从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出 ...

  3. MongoDB集群——分片

    1. 分片的结构及原理分片集群结构分布: 分片集群主要由三种组件组成:mongos,config server,shard1) MONGOS数据库集群请求的入口,所有的请求都通过mongos进行协调, ...

  4. mongodb 集群分片

    分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量,这 ...

  5. MongoDB集群部署 - 带访问控制的分片副本集

    1. 前言 Ceilometer将meter.event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘 ...

  6. Mongodb副本集+分片集群环境部署记录

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  7. Mongodb副本集+分片集群环境部署

    前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...

  8. 搭建高可用mongodb集群(四)—— 分片(经典)

    转自:http://www.lanceyan.com/tech/arch/mongodb_shard1.html 按照上一节中<搭建高可用mongodb集群(三)-- 深入副本集>搭建后还 ...

  9. [转]搭建高可用mongodb集群(四)—— 分片

    按照上一节中<搭建高可用mongodb集群(三)—— 深入副本集>搭建后还有两个问题没有解决: 从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大? 数据压力大到机器支撑不了的 ...

随机推荐

  1. Tensorflow学习笔记No.9

    模型的保存与恢复 介绍一些常见的模型保存与恢复方法,以及如何使用回调函数保存模型. 1.保存完整模型 model.save()方法可以保存完整的模型,包括模型的架构.模型的权重以及优化器. model ...

  2. mysql在DOS环境下操作的命令

    管理员运行cmd,执行启动mysql命令:net start MySQL版本号 登录数据库:mysql -u root -p 输入密码 创建数据库:drop database if exists 数据 ...

  3. 想买保时捷的运维李先生学Java性能之 垃圾收集算法

    前言 从原来只知道-Xms.-Xmx是设置内存的,到现在稍微理解了一些堆内存等Java虚拟机的一些知识.明白了技术这一个东西还是得要有输入才能实践,原理与实践要相辅相成,后续把JVM的监控好好总结一下 ...

  4. 使用MQTT协议的4G DTU模块具有什么优势

    什么是MQTT协议 要了解使用MQTT协议的4G DTU模块具有哪些优势,首先我们需要了解什么是MQTT协议,MQTT协议最早是IBM开发的一个即时通讯协议,它的主要是为大量计算能力有限且工作在低带宽 ...

  5. DES 实现

    原理 加密 置换: IP逆置换: 迭代: PC-1置换: PC-2置换: 子秘钥的生成: 加密函数f: 解密 代码 // C语言实现 #include<stdio.h> #include& ...

  6. 浅谈 Johnson 算法

    目录 前言 引入 算法概述 算法流程 正确性证明 代码实现 结语 前言 Johnson 和 Floyd 一样是用来解决无负环图上的全源最短路. 在稀疏图上的表现远远超过 Floyd,时间复杂度 \(O ...

  7. Linux开机启动顺序启动顺序及配置开机启动

    Linux:开机启动顺序启动顺序及配置开机启动 开机启动顺序 1.加载内核 2.启动 init(/etc/inittab) pid=1 3.系统初始化 /etc/rc.d/rc.sysinit 4.运 ...

  8. logback日志打印sql

    今天整合springboot2 + mybatis + logback 遇到了在日志中sql打印不出来的坑,在网上找了好久,都不是我遇到的问题,这里吐槽一下下现在的博客质量,好多都是抄袭的,也没有标注 ...

  9. python的各版本的不同

    Python的版本主要分为 2.× . 3.× 两个系列. Python3计划每年发布一个新的子版本,一次只增加一两种新语法. 使用时当然选择越新的Python版本越好,版本越老的代码越难维护. 维护 ...

  10. 你真的会用PostGIS中的buffer缓冲吗?

    buffer - 图形缓冲区分析,GIS中最基本的空间分析之一. 实现buffer的工具有很多种,例如前端的truf.js.服务端的ArcGISserver.桌面端的ArcMap.数据库端的PosrG ...