Mongodb----部署副本集 实现读写分离

使用软件:

xshell7        vmware16 centos8         nosql booster

              

1 部署副本集

推荐方案:

     为了降低资源分配,这里仅使用一台服务器,但是分配3个端口(27017、27018、27019)来分别实现 主节点、副本节点、和仲裁节点的功能。副本集各服务器的基本信息及角色分配如下

虚拟机   ip地址成员角色主机名
nosql_01192.168.22.100主节点Server01
nosql_02192.168.22.100副本节点server01
nosql_03192.168.22.100仲裁节点server01

所有节点的存放数据和日志的目录请放在/usr/local/mongodb/replica_sets路径下:

1.创建主节点

操作代码:

#1、主节点,建立存放数据和日志的目录(代码粘贴下方):

mkdir -p /usr/local/mongodb/replica_sets/myrs_27017/logs \ & mkdir -p
/usr/local/mongodb/replica_sets/myrs_27017/data/db


#2、新建或修改配置文件(代码粘贴下方):

vi /usr/local/mongodb/replica_sets/myrs_27017/mongod.conf


#3、mongod.conf配置文件中的内容,副本集的名称使用姓名全拼+rs,例如replSetName:
LiMingrs(代码粘贴下方):

systemLog:
#MongoDB发送所有日志输出的目标指定为文件
##The path of the log file to which mongod or mongos should send all
diagnostic logging information
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb/replica_sets/myrs_27017/logs/mongologs.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
##The directory where the mongod instance stores its data.Default Value is
"/data/db".
dbPath: "/usr/local/mongodb/replica_sets/myrs_27017/data/db"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
pidFilePath: "/usr/local/mongodb/replica_sets/myrs_27017/logs/mongod.pid"
net:
#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
#bindIpAll: true
#服务实例绑定的IPbindIp: localhost,192.168.22.100
#bindIp
#绑定的端口,默认是27017
port: 27017
replication:
#副本集的名称
replSetName: wuweixianrs


#4、启动节点服务:

mongod -f /usr/local/mongodb/replica_sets/myrs_27017/mongod.conf

2.创建副本节点:

#1、副本节点,建立存放数据和日志的目录(代码粘贴下方):

mkdir -p /usr/local/mongodb/replica_sets/myrs_27018/logs \ & mkdir -p /usr/local/mongodb/replica_sets/myrs_27018/data/db

#2、新建或修改配置文件(代码粘贴下方):

 vi /usr/local/mongodb/replica_sets/myrs_27018/mongod.conf

#3、mongod.conf配置文件中的内容,副本集的名称使用姓名全拼+rs,例如replSetName: LiMingrs(代码粘贴下方):

systemLog:
#MongoDB发送所有日志输出的目标指定为文件
##The path of the log file to which mongod or mongos should send all
diagnostic logging information
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb/replica_sets/myrs_27018/logs/mongologs.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
##The directory where the mongod instance stores its data.Default Value is
"/data/db".
dbPath: "/usr/local/mongodb/replica_sets/myrs_27018/data/db"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
pidFilePath: "/usr/local/mongodb/replica_sets/myrs_27018/logs/mongod.pid"
net:
#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
#bindIpAll: true
#服务实例绑定的IP
bindIp: localhost,192.168.22.100
#bindIp
#绑定的端口,默认是27018
port: 27018
replication:
#副本集的名称
replSetName: wuweixianrs

#4、启动节点服务:

mongod -f /usr/local/mongodb/replica_sets/myrs_27018/mongod.conf

3.创建仲裁节点:

#1、仲裁节点,建立存放数据和日志的目录(代码粘贴下方):

 mkdir -p /usr/local/mongodb/replica_sets/myrs_27019/logs \ & mkdir -p /usr/local/mongodb/replica_sets/myrs_27019/data/db

#2、新建或修改配置文件(代码粘贴下方):

 vi /usr/local/mongodb/replica_sets/myrs_27019/mongod.conf

#3、mongod.conf配置文件中的内容,副本集的名称使用姓名全拼+rs,例如replSetName: LiMingrs(代码粘贴下方):

systemLog:
#MongoDB发送所有日志输出的目标指定为文件
##The path of the log file to which mongod or mongos should send all
diagnostic logging information
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb/replica_sets/myrs_27019/logs/mongologs.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
##The directory where the mongod instance stores its data.Default Value is
"/data/db".
dbPath: "/usr/local/mongodb/replica_sets/myrs_27019/data/db"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
pidFilePath: "/usr/local/mongodb/replica_sets/myrs_27019/logs/mongod.pid"
net:
#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
#bindIpAll: true
#服务实例绑定的IP
bindIp: localhost,192.168.22.100
#bindIp
#绑定的端口,默认是27019
port: 27019
replication:
#副本集的名称
replSetName: wuweixianrs

 

#4、启动节点服务:

 mongod -f /usr/local/mongodb/replica_sets/myrs_27019/mongod.conf

4.启动服务 

执行 ps -ef|grep mongod 查看端口是否已启动服务

5.初始化配置副本集和主节点

使用客户端命令连接任意一个节点,但这里尽量要连接主节点(27017节点):

mongo --port=27017

6.查看副本集的配置内容:

rs.conf()

 

7.查看副本集状态 

8.添加副本从节点 

rs.add("192.168.22.100:27018")

9.添加仲裁从节点 

rs.addArb("192.168.22.100:27019"

 

 2 副本集操作

副本集的数据读写操作

目标:测试三个不同角色的节点的数据读写情况。
1.登录主节点27017 使用mongo shell 登录主节点27017,写入和读取数据:
mongo --host=192.168.22.100 --port=27017

 

2.登录从节点27018:

使用mongo shell 登录从节点,读取测试数据

mongo --host=192.168.22.100 --port=27018

 

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

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

相关文章

【软考-中级】系统集成项目管理工程师-立项管理历年案例

持续更新。。。。。。。。。。。。。。。 目录 2023 上 试题一(18分) 2023 上 试题一(18分) A公司跨国收购了B公司的主营业务,保留了B公司原有的人员组织结构和内部办公系统。 为了解决B公司内部办公系统与A公司原有系统不兼容的问题,财务、人力和行政部…

深入浅出ThreadPoolExecutor(一)

文章目录 线程池简诉ThreadPoolExecutor详解ThreadPoolExecutor参数详解创建线程池的工具类Executors 线程池简诉 针对各种池子,比如 连接池:用于管理和重复使用数据库连接,避免频繁创建和销毁数据库连接带来的性能开销。对象池:用于管理和重复使用对象…

Linux shell编程学习笔记12:布尔运算和逻辑运算

Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、逻辑、字符串、文件测试等多种运算。前面几节我们陆续研究了 Linux shell编程 中的 字符串运算、算术运算和关系运算,今天我们来研究 Linux shell编程中的的布尔运算、逻辑运算。 一、…

LENOVO联想笔记本小新 Pro-14 2021AMD处理器ACH版(82MS)原厂Win10系统

下载链接:https://pan.baidu.com/s/1-KZ8Y9NmkS7nDXcMbhZLHw?pwdyrkx 系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、lenovo联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:ISO 文件大小&#xff1…

kafka广播消费组停机后未删除优化

背景 kafka广播消息的时候为了保证groupId不重复,再创建的时间采用前缀时间戳的形式,这样可以保证每次启动的时候是创建的新的,但是 会出现一个问题:就是每次停机或者重启都会新建一个应用实例,关闭应用后并不会删除…

VUE3页面截取部署后的二级目录地址

用vue3开发了一个项目,只能部署在根目录,不能加二级目录,后来网上找了解决方案,在vite.config.ts中增加base: ./,配置解决问题,参考下图: 但部署后要获取部署的二级目录地址切遇到问题,后来想了…

发布npm包质量分测试

查询质量分接口 https://registry.npmjs.org/-/v1/search?textcanvas-plus v0.0.1 quality 0.2987 新建文件夹 canvas-plus 执行命令 npm init 生成package.json {"name": "3r/canvas-plus","version": "0.0.1","descript…

Profinet主站转EtherNET/IP从站连接profinet从站设备方法

YC-PNM-EIP网关产品可以通过各种数据接口与工业领域的仪表、PLC、计量设备等产品连接,实时采集这些设备中的运行数据、状态数据等信息,并将采集的数据进行整合、运算等操作后传输到其他设备或云平台。网关可采集Profinet EtherCAT设备的实时数据采集&…

大数据Doris(十):添加BE步骤

文章目录 添加BE步骤 一、使用mysql连接 二、​​​​​​​添加be

微信小程序支持h5实现webrtc h264 h265低延迟传输渲染

微信小程序自成体系,自身也带了很强的rtc音视频能力,但是他捆绑了他自己的服务,开发也相对受限于他的api。基于以前的了解可以采webview的方式内嵌h5网址来实现自定义的webrtc.但实践起来并不轻松,主要是小程序的严格限制&#xf…

Spring MVC 十一:@EnableWebMvc

我们从两个角度研究EnableWebMvc: EnableWebMvc的使用EnableWebMvc的底层原理 EnableWebMvc的使用 EnableWebMvc需要和java配置类结合起来才能生效,其实Spring有好多Enablexxxx的注解,其生效方式都一样,通过和Configuration结合…

搭建Umijs环境并创建一个项目 介绍基本操作

上文 Umijs介绍中 我们简单了解了一下这个东西 这里 我们还是不要关说不练了 直接终端执行 npm install -g umi可能会比较久 因为这个东西还挺大的 我们执行 umi -v这里就会输出版本 然后 我们创建一个文件夹目录 作为项目目录 然后 我们可以 通过 终端输入 mkdir 项目名称…

07 | @Entity 之间的关联关系注解如何正确使用?

实体与实体之间的关联关系一共分为四种,分别为 OneToOne、OneToMany、ManyToOne 和 ManyToMany;而实体之间的关联关系又分为双向的和单向的。实体之间的关联关系是在 JPA 使用中最容易发生问题的地方,接下来我将一一揭晓并解释。我们先看一下…

用 Three.js 创建一个酷炫且真实的地球

接下来我会分步骤讲解,在线示例在数字孪生平台。 先添加一个球体 我们用threejs中的SphereGeometry来创建球体,给他贴一张地球纹理。 let earthGeo new THREE.SphereGeometry(10, 64, 64) let earthMat new THREE.MeshStandardMaterial({map: albed…

【汇编语言学习笔记】一、基础知识

引言 汇编语言是直接在硬件之上工作的编程语言,首先要了解硬件系统的结构,才能有效的应用汇编语言对其编程。 1.1机器语言 机器语言是机器指令的集合。 机器指令展开来讲就是一台机器可以正确执行的命令。 1.2汇编语言 汇编语言的主体是汇编指令。 …

【云计算】相关解决方案介绍

文章目录 1.1 云服务环境 Eucalyptus1.1.1 介绍1.1.2 开源协议及语言1.1.3 官方网站 1.2 开源云计算平台 abiCloud1.2.1 开源协议及语言1.2.2 官方网站 1.3 分布式文件系统 Hadoop1.3.1 开源协议及语言1.3.2 官方网站 1.4 JBoss云计算项目集 StormGrind1.4.1 开源协议及语言1.4…

uniapp打包配置

安卓: 首先不管是什么打包都需要证书,安卓的证书一般都是公司提供或者自己去申请。然后把包名等下图框住的信息填上,点击打包即可。 ios:ios需要使用mac到苹果开发者平台去申请证书,流程可以参考下边的链接 参考链接…

解决git在window11操作很慢,占用很大cpu的问题

【git在window11操作很慢,占用很大cpu,最后也执行失败】 在谷歌输入:git very slow in window 11。通过下面链接终于找到了解决方案: https://www.reddit.com/r/vscode/comments/sulebx/slow_git_in_wsl_after_updating_to_window…

【Java基础知识】

文章目录 前言1. 添加环境变量的方法2.JDK JRE JVM3.main方法4.注释5.标识符6.数据类型与变量6.1字节:6.2变量6.3找最大值和最小值范围整型变量浮点型变量字符型变量布尔型变量 前言 最近焦虑迷茫,学习过程中遇到了困难,所以想重新复习一遍S…

【C++】适配器模式 - - stack/queue/deque

目录 一、适配器模式 1.1迭代器模式 1.2适配器模式 二、stack 2.1stack 的介绍和使用 2.2stack的模拟实现 三、queue 3.1queue的介绍和使用 3.2queue的模拟实现 四、deque(不满足先进先出,和队列无关) 4.1deque的原理介绍 4.2dequ…