下载包

官网选择合适的操作系统版本下载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. 微软开源Kubernetes服务网格项目Open Service Mesh​

    尽管微服务环境提供可移植性,允许更快更频繁的部署周期,甚至还能让组织创建关注于特定领域的团队,但这也伴随着对于流量管理.安全以及可观测性等需求的增长.在整个生态系统中,针对这些需求的服务网格模式的实现 ...

  2. 网络协议学习笔记(九)CDN和数据中心

    概述 上一篇给大家介绍了DNS协议和HttpDns协议,现在给大家介绍一下CDN和数据中心相关的知识. CDN:你去小卖部取过快递么? 如果你去电商网站下单买个东西,这个东西一定要从电商总部的中心仓库 ...

  3. 《剑指offer》面试题42. 连续子数组的最大和

    问题描述 输入一个整型数组,数组里有正数也有负数.数组中的一个或连续多个整数组成一个子数组.求所有子数组的和的最大值. 要求时间复杂度为O(n). 示例1: 输入: nums = [-2,1,-3,4 ...

  4. 如何管理leader对你的能力预期?

    在内网看到一个讨论帖,原文如下: 如何管理leader对你的能力预期? 你一个项目做得好,之后类似项目,leader认为你也就是合格水平,而且认为你只会做这种项目. SAD.. 思考 在开始之前先想下 ...

  5. 基础概念(2):怎么用cc来编译?

    怎么用cc来编译? 总结卡片: cc的使用可以很简单,指定要转换的程序文件就可以了,比如:cc hello.c. 按cc的规则(我这里是clang-llvm),程序文件以.c或.cpp为后缀. cc有 ...

  6. 多线程-线程间通信-多生产者多消费者问题解决(notifyAll)

    1 package multithread4; 2 3 /* 4 * 生产者,消费者. 5 * 6 * 多生产者,多消费者的问题. 7 * 8 * if判断标记,只有一次,会导致不该运行的线程运行了. ...

  7. JS、jQuery 刷新 iframe 的方法

    1.JavaScript 刷新 iframe 可以使用以下方法: document.getElementById('some_frame_id').contentWindow.location.rel ...

  8. Ldap主从复制搭建

    LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写, LDAP协议的特点 读取速度远高于写入速度. 对查询做了优化,读取速度优于普通关系数据 ...

  9. 沁恒CH32F103C8T6的开发和烧录配置说明

    概述 CH32F1系列是沁恒生产的32位Cortex-M3 MCU, 片上集成了时钟安全机制.多级电源管理. 通用DMA控制器等. 此系列具有 2 路 USB2.0接口.多通道 TouchKey. 1 ...

  10. Git配置用户信息和SSH免密

    一.配置用户信息 1.查看配置信息 # 查看所有配置 $ git config -l/--list # 查看系统配置 $ git config --system -l/--list # 查看用户配置 ...