Centos7 搭建Mongodb 分片集群4.0/ PSA(三成员副本集)

MongoDB

    • 简介:
      • 1、优点和缺点:
      • 2、MongoDB适用的业务场景:
    • Centos7 搭建Mongodb 分片集群
      • 一、安装MongoDB社区版4.0
        • 1、配置程序包管理系统(`yum`)
        • 2、安装对应版本的MongoDB软件包。
        • 3、创建运行mongodb的目录并禁用SELinux
        • 4、修改文件打开数
        • 5、初始化系统
          • 5.1、创建config配置服务器,配置文件mongoconfig.conf,并启动
          • 5.2、创建shard服务器,shard 配置 mongd.conf
            • 1)leojiang124、leojiang126 配置shard1
            • 2)leojiang125、leojiang127 配置shard2副本集,shard.config配置文件修改<replication.replSetName>即可
            • 3)arbiter :
            • 4)启动副本集:
            • 5)配置三成员副本集
          • 5.3、创建mongos客户端指定配置服务器,配置mongos.conf
        • 6、数据库添加内部安全认证
          • 6.1、创建密钥文件
          • 6.2、把生成的mongodb-keyfile文件拷贝到每个需要keyfile的服务器上,开启配置文件的注释
          • 6.3、重启集群并生效:
    • Data flow:

简介:

MongoDB是一个分布式非关系型数据库管理系统

1、优点和缺点:

优点:
1. 灵活的数据模型:MongoDB是面向文档的数据库,使用JSON格式存储数据,因此可以轻松地存储各种类型的数据,而不需要遵循严格的模式。
2. 可扩展性:MongoDB支持水平扩展,可以通过添加更多的服务器来处理大量的数据和流量,从而实现高可扩展性。
3. 高性能:MongoDB具有快速的读写速度,特别是在大型数据库和高并发访问的情况下。
4. 强大的查询功能:MongoDB支持丰富的查询功能,包括复杂的聚合查询、全文搜索等。
5. 自动故障转移:MongoDB具有自动故障转移功能,可以在主服务器故障时自动切换到备用服务器,提高了系统的可用性。缺点:
1. 内存消耗较大:MongoDB在处理大规模数据时需要大量的内存来维护索引和缓存,这可能导致服务器成本较高。
2. 数据一致性问题:由于MongoDB的分布式特性,可能会存在数据一致性的问题,特别是在网络分区或节点故障时。
3. 复杂的查询:MongoDB的复杂查询性能可能不如传统的关系型数据库。

2、MongoDB适用的业务场景:

MongoDB适合许多不同类型的业务,特别是那些需要处理灵活数据模型、大规模写入、高性能读取和无需复杂事务支持的应用。1. 内容管理系统(CMS):CMS通常需要处理多种类型的内容,如文章、图片、视频等,而这些内容的结构可能会经常变化。MongoDB的灵活的文档数据模型使其成为存储和管理此类内容的理想选择。2. 实时分析和日志处理:MongoDB可以处理大规模的写入操作,因此非常适合存储实时生成的日志数据或其他实时事件数据。它还具有良好的读取性能,可以支持实时分析和查询。3. 物联网(IoT)应用:物联网应用通常需要处理大量的传感器数据和设备数据,并且这些数据的结构可能是不确定的。MongoDB的灵活性和水平扩展性使其成为存储和处理物联网数据的良好选择。4. 用户分析和个性化推荐:对于需要存储和分析大量用户数据,并基于这些数据进行个性化推荐或用户行为分析的应用程序,MongoDB是一个强大的工具。它可以轻松存储用户配置文件、行为数据等,并支持复杂的查询和分析。

Centos7 搭建Mongodb 分片集群

一、安装MongoDB社区版4.0

该集群由mongos、配置服务器config和两个三成员shard副本集组成。
在这里插入图片描述

组件分布:

ip组件
leojiang123arbiter(shard1)、arbiter(shard2)
leojiang124mongos、config、shard1(副)
leojiang125mongos、config、shard2(副)
leojiang126mongos、config、shard1(主)
leojiang127mongos、shard2(主)

端口选择:

组件端口选择
mongos20000
config27000
shard27001
arbiter27026、27027
1、配置程序包管理系统(yum

创建一个/etc/yum.repos.d/mongodb-org-4.0.repo文件,以便您可以使用yum以下命令直接安装MongoDB

  • 分别在leojiang123~leojiang127服务器上执行
cat > /etc/yum.repos.d/mongodb-org-4.0.repo << EOF
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
2、安装对应版本的MongoDB软件包。
  • 分别在leojiang123~leojiang127服务器上执行
sudo yum install -y mongodb-org-4.0.9 mongodb-org-server-4.0.9 mongodb-org-shell-4.0.9 mongodb-org-mongos-4.0.9 mongodb-org-tools-4.0.9

为防止意外升级,请固定包装。

echo 'exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools'>>/etc/yum.conf
3、创建运行mongodb的目录并禁用SELinux
  • 根据自身情况分别在leojiang123~leojiang127服务器上执行
mkdir -p /var/opt/mongodb/config
mkdir -p /var/opt/mongodb/mongos
mkdir -p /var/opt/mongodb/shard
mkdir -p /var/opt/mongodb/arbiter
chown -R mongod:mongod /var/opt/mongodb

禁用SELinux

vim /etc/sysconfig/selinux
SELINUX=disabledsetenforce 0
4、修改文件打开数
  • 分别在leojiang123~leojiang127服务器上执行

4.1、修改系统文件打开数

# 直接生效
ulimit -n 1000000

4.2、修改mongo最大文件打开数

cat > /etc/security/limits.d/99-mongodb.conf << LEO
#Default limit for number of user’s processes to prevent
# accidental fork bombs.
# # See rhbz #432903 for reasoning.
# #
# # * soft nproc 4096
# # root soft nproc unlimited
* soft nofile 1000000
* hard nofile 1000000
* soft fsize unlimited
* hard fsize unlimited
* soft cpu unlimited
* hard cpu unlimited
* soft nproc 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/614646.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Springboot的自习室预订系统

基于SpringbootVue的自习室预订系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringbootMybatis工具&#xff1a;IDEA、Maven、Navicat 系统展示 用户登录页 网站首页 公告信息 留言反馈 后台管理 学生信息管理 公告信息管理 留言…

书生·浦语大模型实战营 | 第3次学习笔记

前言 书生浦语大模型应用实战营 第二期正在开营&#xff0c;欢迎大家来学习。&#xff08;参与链接&#xff1a;https://mp.weixin.qq.com/s/YYSr3re6IduLJCAh-jgZqg 第三堂课的视频链接&#xff1a;https://www.bilibili.com/video/BV1QA4m1F7t4/ 本次笔记是学习完第三堂课…

CentOS 网卡ifcfg-eth0 ping不通外网(www.baidu.com)

1、如果确认好就直接激活网卡&#xff01; ifup eth0 2、慢慢找&#xff1a; cd /etc/sysconfig/network-scripts/ ls 找到你的网卡是啥&#xff0c;这里网卡是 ifcfg-eth0 执行1就好了&#xff01;

如何使用SQL注入工具?

前言 今天来讲讲SQL注入工具&#xff0c;sqlmap。如何使用它来一步步爆库。 sqlmap官方地址如下。 sqlmap: automatic SQL injection and database takeover tool 前期准备&#xff0c;需要先安装好docker、docker-compose。 一个运行的后端服务&#xff0c;用于写一个存在…

观察者模式:实现高效事件驱动编程的策略

在软件开发中&#xff0c;观察者模式是一种关键的行为型设计模式&#xff0c;用于建立对象间的一种依赖关系&#xff0c;使得当一个对象改变状态时&#xff0c;所有依赖于它的对象都会得到通知并被自动更新。这种模式是事件监听和响应编程的基石。本文将详细介绍观察者模式的定…

2024年妈妈杯数学建模C题思路分析-物流网络分拣中心货量预测及人员排班

# 1 赛题 C 题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成&#xff0c;图 ’ 是一个简化的物流 网络示意图。其中&#xff0c;分拣中心作为网络的中间环节&#xff0c;需要将包裹按照不同 流向进行分拣并发往下一个场地&#xff0c;最终使包裹…

洛谷题单 -- 图论的简单入门

B3643 图的存储 链接 : 图的存储 - 洛谷 思路 : 这一题要考察图的存储方式 , 一般可以使用邻接矩阵 或 邻接表来存储 图的结点 和1 边的信息 &#xff0c;详情请看代码 : 代码 #include<bits/stdc.h> using namespace std;const int N 1010 ; int n , m ; int …

未佩戴厨师帽识别检测 厨房管理系统 自动监测未佩戴厨师帽行为 实时报警

在厨房环境中&#xff0c;佩戴厨师帽对于食品安全和卫生至关重要。厨师帽能够有效地防止头发、皮屑等杂质掉入食物中&#xff0c;减少了食品受到污染的可能性&#xff0c;从而保障了食品安全。特别是在学校、餐厅等场景中&#xff0c;对于未佩戴厨师帽的检测更是必不可少。相关…

elementui中el-select下拉列表偏移问题

问题截图 解决方法 在el-select中添加:popper-append-to-body"false"即可 加完后的效果

kanzi API案例

背景&#xff1a;kanzi的帮助文档都是api简单含义&#xff0c;很少有案例的说明。每一次使用API都是一个摸索的过程。记录一下用到的API案例。 1. 按钮事件 界面有一个按钮&#xff0c;点击后C处理对应的事件 void MyKanzi::onProjectLoaded() { Button2DSharedPtr button2D_…

IP地址修改步骤详解

IP地址是网络设备在网络中的标识&#xff0c;它决定了设备在网络中的位置与可访问性。然而&#xff0c;在某些情况下&#xff0c;我们可能需要修改IP地址&#xff0c;以满足特定的网络需求或解决网络问题。虎观代理将详细介绍IP地址的修改步骤&#xff0c;帮助读者更好地理解和…

python爬虫-------urllib代理和代理池(第十七天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…