下载包

官网选择合适的操作系统版本下载tgz包

https://www.mongodb.com/download-center/community

部署结构

集群结构

典型的三分片Mongo集群如下图所示,包含三类组件:查询路由、配置服务器、分片。其中查询路由为mongos进程,配置服务器和分片都是mongod进程。配置服务器和分片都采取副本集(replica set)来确保可用性和健壮性,每个副本集最少包含三个节点。查询路由都是单实例运行,没有副本集机制,可根据需要增加实例数量,也可以在外部添加负载均衡。



上图中每个方框仅代表功能集合,不代表物理位置。实际部署时,为了避免单点故障,同一个副本集中的成员,应该部署在不同主机上。比如分片1的三个mongod进程应该运行在三台不同的主机上。

部署方案





副本集方案2(一主一从一仲裁)

如上图所示,三成员的副本集方案有两种:一主二从、一主一从一仲裁。

对于方案1来说,每个成员都是数据节点,应该各自独占一台主机,这样三分片集群至少需要9台服务器(配置服务器和查询路由可以复用主机),之后每追加一个分片需要增加3台主机。具体部署情况如下图所示(同颜色的为一组,查询路由为MS,配置服务器为CS):



对于方案2来说,有两个成员是数据节点,两外一个是投票节点(仲裁者),这样三分片集群只需要6台服务器(配置服务器和查询路由依旧复用主机,仲裁者与另一分片的数据节点部署在一台主机),之后每追加一个分片需要增加2台主机。具体部署情况如下图所示(同颜色的为一组,
a表示仲裁者,如Aa、Ba):

可以看出,分片副本集采取一主一从一仲裁方案,更加节省机器资源。结合Mongo分片集群一期部署所能使用的服务器数量为6台,选择第二种部署方案。

检查安装环境

确定NUMA已关闭

执行grep -i numa /var/log/dmesg,如果输出结果为:No NUMA configuration found,说明NUMA已禁用,否则通过BIOS将其关闭,或者使用numactl来启动mongod进程(安装方法见3.3)。

确定kernel版本不低于2.6.36

执行uname -r,查看返回的版本号

确定glibc版本不低于2.13

执行ldd –version(version前面两个减号),查看返回的版本号

确定ulimit配置

执行ulimit -a,查看当前设置,官方推荐配置如下:

-f (file size): unlimited

-t (cpu time): unlimited

-v (virtual memory): unlimited

-n (open files): 64000

-m (memory size): unlimited

-u (processes/threads): 64000

主要需要确认的是最大文件数(-n),最大进程数(-u),调整方法如下:

将最大文件数(-n)修改为64000

编辑/etc/security/limits.conf,写入以下两行

  • soft nofile 64000

  • hard nofile 64000

将最大进程数(-u)修改为64000

编辑/etc/security/limits.d/20-nproc.conf,写入以下两行

  •      soft    nproc     64000
  •      hard    nproc     64000

配置完成后,重新打开终端确认是否生效。

参考

https://blog.csdn.net/wmq880204/article/details/113361244

https://blog.csdn.net/newCheng/article/details/104972150

mongodb4.x 集群搭建的更多相关文章

  1. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  2. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  3. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  4. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

  5. (三)Spark-Hadoop集群搭建-Java&Python版Spark

    Spark-Hadoop集群搭建 视频教程: 1.优酷 2.YouTube 配置java 启动ftp [root@master ~]# /etc/init.d/vsftpd restart 关闭 vs ...

  6. Mosquitto搭建Android推送服务(三)Mosquitto集群搭建

    文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...

  7. Mongodb集群搭建的三种方式

    转自:http://blog.csdn.net/luonanqin/article/details/8497860 MongoDB是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key- ...

  8. 分布式架构中一致性解决方案——Zookeeper集群搭建

    当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...

  9. 从零自学Hadoop(06):集群搭建

    阅读目录 序 集群搭建 监控 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...

随机推荐

  1. docker的安装以及使用命令

    docker的安装 安装docker https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository 从 2 ...

  2. IDEA maven 项目修改代码不生效,mvn clean、install 后才生效

    Maven项目进行修改代码后我们重新运行代码,查看我们target目录下的class文件是否发生了变化.    如何查看class文件,鼠标移到项目,点击右键,然后点击 show in Explore ...

  3. 在字节,A/B 实验是这么做的!

    主要为大家介绍了为什么要做 A/B 测试.火山引擎的 A/B 测试系统架构及字节跳动内部 A/B 测试的最佳实践. 为什么要做 A/B 测试 首先我们看一个案例. 字节跳动有一款中视频产品叫西瓜视频, ...

  4. Spark-寒假-实验3

    1.安装 Hadoop 和 Spark 进入 Linux 系统,参照本教程官网"实验指南"栏目的"Hadoop 的安装和使用",完成 Hadoop 伪分布式模式 ...

  5. 【刷题-LeetCode】300. Longest Increasing Subsequence

    Longest Increasing Subsequence Given an unsorted array of integers, find the length of longest incre ...

  6. WSL删除子系统后无法重装

    问题 WSL卸载后安装error 解决办法 UWP应用卸载后没有删除目录下的文件 C:\Users\wwwfe\AppData\Local\Packages路径下删除就可以了 再次安装会卡顿很久,可能 ...

  7. 使用Cesium Stories在3D Tilesets中检查Features

    Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 我们创建了3D Tiles用以流式化.可视化和分析大量的三维内容 ...

  8. 读书笔记http之第一章

    http TCP/IP协议各层: 应用层 决定了向用户提供应用服务时通信的活动. 比如 : FTP(FileTransferProtocol,文件传输协议)和DNS(DomainNameSystem, ...

  9. axios请求的封装

    /* axios的请求封装 */         //axios的原生写法get,post请求         //第一个参数为请求地址,第二个参数为请求的参数,params是将参数拼接在url的后面 ...

  10. 使用 Dapr 缩短软件开发周期

    Microsoft DevOps 文档里的文章(https://docs.microsoft.com/zh-cn/azure/devops/report/dashboards/cycle-time-a ...