在Linux系统上搭建Mongodb副本集,实现一主一从一选举。

MongoDB副本集(Replica Sets)安装部署 mongodb副本集集群部署,结合网上查找资料及自己实践,进行一次完整的安装记录,并附上对应安装包,提供给需要的人使用。此安装包支持linux-x86架构;第一次梳理,如不清楚可留言。 阅读详情

接上条博客地址:https://blog.youkuaiyun.com/SpringCYB/article/details/90081038

1.首先创建副本集,需要三台虚拟机,可以直接克隆就可以

我直接克隆的上条博客里的虚拟机单机版,具体安装过程详见上条博客,我在这里不在赘述。
3台虚拟机虚拟机的ip地址:

192.168.1.100 (初始计划设定其为arbiter ,即仲裁服务器) 仲裁

192.168.1.145(初始计划设定其为master)主

192.168.1.151 (初始计划设定其为slave) 副

连接 xftp 

2.配置mongo.conf启动文件,为副本集取名weijh:

路径:/usr/data/mongodb 

ip:100 仲裁

dbpath=/usr/data/mongodb/data/db
port=27017
logpath=/usr/data/mongodb/log/mongodb.log
logappend=true
journal=true
fork=true
replSet=weijh/192.168.1.145

ip:151 副

dbpath=/usr/data/mongodb/data/db
port=27017
logpath=/usr/data/mongodb/log/mongodb.log
logappend=true
journal=true
fork=true
replSet=weijh/192.168.1.145

ip:145 主

dbpath=/usr/data/mongodb/data/db
port=27017
logpath=/usr/data/mongodb/log/mongodb.log
logappend=true
journal=true
fork=true
replSet=weijh/192.168.1.100,192.168.1.151

3.配置结束后,重启服务

连接xshell

启动三台mongodb服务:

 cd ../ 

cd usr/data/mongodb/bin

./mongo

4.在浏览器打开链接访问:


http://192.168.1.100:28017/

http://192.168.1.145:28017/

http://192.168.1.151:28017/

如果三个页面均展示成功则代表mongodb服务没有问题

5.初始化副本集
登入任意一台机器的MongoDB执行:因为是全新的副本集所以可以任意进入一台执行;要是有一台有数据,则需要在有数据上执行;要多台有数据则不能初始化。(随便连接一下哪个服务器都行,不过一定要进入admin集合)
通过命令 :use admin 

rs.initiate({"_id":"weijh","members":[
{"_id":1,
"host":"192.168.1.145", #主服务
"priority":1
},
{"_id":2,
"host":"192.168.1.151", #副服务
"priority":1
}
]})

“_id”: 副本集的名称
“members”: 副本集的服务器列表
“_id”: 服务器的唯一ID
“host”: 服务器主机
“priority”: 是优先级,默认为1,优先级0为被动节点,不能成为活跃节点。优先级不位0则按照有大到小选出活跃节点。
“arbiterOnly”: 仲裁节点,只参与投票,不接收数据,也不能成为活跃节点

如出现下图则表示成功!

出现 { "info" : "Config now saved locally. Should come online in about a minute.", "ok" : 1 } 表示成功

注意千万别写错ip!否则只可初始化一次,三台虚拟机将会全崩

 

6.查看状态

通过 rs.status() 命令 查看状态

7.添加仲裁节点

通过  rs.addArb("192.168.1.100")

再查看状态:rs.conf()

上面说明已经让100服务器成为仲裁节点。副本集要求参与选举投票(vote)的节点数为奇数,当我们实际环境中因为机器等原因限制只有两个(或偶数)的节点,这时为了实现 Automatic Failover引入另一类节点:仲裁者(arbiter),仲裁者只参与投票不拥有实际的数据,并且不提供任何服务,因此它对物理资源要求不严格。
通过实际测试发现,当整个副本集集群中达到50%的节点(包括仲裁节点)不可用的时候,剩下的节点只能成为secondary节点,整个集群只能读不能 写。比如集群中有1个primary节点,2个secondary节点,加1个arbit节点时:当两个secondary节点挂掉了,那么剩下的原来的 primary节点也只能降级为secondary节点;当集群中有1个primary节点,1个secondary节点和1个arbit节点,这时即使 primary节点挂了,剩下的secondary节点也会自动成为primary节点。因为仲裁节点不复制数据,因此利用仲裁节点可以实现最少的机器开 销达到两个节点热备的效果。

8.主节点添加数据

通过   

db.test.insert({“name”:“2”,“age”:“2”});  存入数据

db.test.find()    查看数据

如图所示:

副节点查看数据:

读写分离:

首先报错是正常的,因为SECONDARY是不允许读写的, 在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。对于replica set 中的secondary 节点默认是不可读的:
大部分web应用都用数据库作为数据持久化工具,在并发访问频繁且负载压力较大的情况下,也能成为系统性能的”瓶颈”,即使使用本地缓存等方式解决频繁访问数据库的问题,但仍会有大量的并发请求访问动态数据,”读写分离”是一种被广泛采用的方案

“读写分离”,机制首先将那些使用CPU以及内存消耗严重的操作分离到一台或几台性能很高的机器上,而将频繁读取的操作放到几台配置较低的机器上,然后,通过数据同步机制,实现多个数据库之间快速高效地同步数据,从而实现将”读写请求”按实际负载情况进行均衡分布。

通过 rs.slaveOk()  命令:

即可实现副服务查看信息:

9.Windows客户端连接

三台全部连接,ip为Linux电脑ip:

主从读写分离,当你点仲裁想查看数据时,他就会报错

这是因为他不保有数据:

仲裁者(Arbiter)
不保有数据,不参与选主,只进行选主投票。使用Arbiter可以减轻数据存储的硬件需求,Arbiter几乎没什么大的硬件资源需求,但重要的一点是,在生产环境下它和其他数据节点不要部署在同一台机器。

 

部署完毕。

STM32F4系列HAL库配置定时器实验——输入捕获 STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器 阅读详情

相关推荐

Python实战:5分钟搞定高德地图API批量地址转经纬度(附完整代码)

本文提供了一套完整的Python解决方案,利用高德地图Web服务API,实现批量地址到经纬度坐标的自动化转换。文章包含从API申请、核心代码编写到错误处理与性能优化的全流程实战指南,并附赠数据可视化方法,帮助数据分析师和开发者快速提升地理信息处理效率。

weixin_29047919的博客 583

Docker 快速搭建 MongoDB 4.x 集群(一主一从)

Docker 快速搭建 MongoDB 4.x 集群(一主一从),主要是测试环境使用,如果是生产环境不推荐使用 Docker 进行部署数据库的相关组件。

一只奋斗的猪 2624

XR Interaction Toolkit实战:为HTC Vive Cosmos打造抓取、投掷与UI交互(Unity 2023教程)

本文详细介绍了如何使用Unity 2023和XR Interaction Toolkit为HTC Vive Cosmos开发抓取、投掷与UI交互系统。通过实战案例'VR投掷训练室',从基础配置到高级功能实现,涵盖物理抓取、精准投掷机制和VR UI交互设计,帮助开发者提升VR交互开发技能。

weixin_30562507的博客 256

mongodb 生产_mongodb副本集生产环境下部署案例,推荐一个主两个从三台机器

Linux中部署Mongodb副本集提示:以下操作步骤较多,请耐心阅读。关于理论部分请参考上篇浅谈mongodb副本集。1、 准备192.168.102.110 master192.168.102.111 slave1192.168.102.112 slave2以下操作以常用的1主2从3台机器为例2、 操作以master为例,配置好一台再scp到slave1、slave22.1、准备好mongod...

weixin_32204235的博客 516

Unity开发HoloLens应用:从打包到部署的完整指南

本文为Unity开发者提供了将应用部署到HoloLens设备的完整实战指南。详细讲解了从环境准备、Unity项目配置、生成Visual Studio工程,到最终构建APPX安装包并通过设备门户或Visual Studio进行部署的全流程,帮助开发者高效完成混合现实应用的打包与安装。

red88的博客 1019

数字锁相环的原理与FPGA实现

数字锁相环是锁相环电路的全数字实现。锁相环电路能够实现对输入信号的相位进行跟踪,进而在噪声中提取纯净的有用信号。以上就是今天要讲的内容,本文简单地介绍了锁相环的原理,然后,在Vivado仿真平台上,通过verilog做仿真验证。最终仿真结果能够实现锁定,但锁定时间较长,表明参数仍可做调整。

weixin_45857378的博客 8510

MongoDB副本集主节点的选举过程

MongoDB的复制集具有自动容忍部分节点宕机的功能,在复制集出现问题时时,会触发选举相关的过程,完成主从节点自动切换。每个复制集成员都会在后台运行与复制集所有节点的心跳线程,在两种情况下会触发状态检测过程: 复制集成员心跳检测结果发生变化,比如某个节点挂了或者新增节点; 超过4s没有执行状态检测过程。在状态检测过程大致包含以下步骤: (1)检测自身是否处于选举过程,如果是,退出本次过程。(2...

bfo66217的博客 1144

从安装到出图:一份给振动测试新手的LMS Test.Lab 2021完整避坑手册(含许可证更新和常见弹窗解决)

本文为振动测试新手提供LMS Test.Lab 2021的完整使用指南,涵盖安装配置、许可证更新、数据采集到频域后处理的全流程。特别针对常见弹窗错误提供解决方案,并详细讲解Colormap时频图分析技巧,帮助用户快速掌握振动数据分析核心技能。

weixin_29268331的博客 990

MongoDB副本集介绍与部署

MongoDB副本集(Replica Set)作为MongoDB数据库的核心功能之一,为开发人员提供了一种简单而有效的方式来实现数据的高可用性和冗余备份。在本文中,我们将探讨MongoDB副本集的概念、工作原理以及如何配置和管理一个稳健的副本集环境。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 3904

ArtMate —— 美术公开课智能体开发全记录

本文档详细描述了一款专为中小学美术公开课设计的智能教学助手的开发过程。该智能体融合了多模态感知、自然语言交互、风格迁移与智能评价等技术,旨在辅助教师开展生动、高效的美术鉴赏与创作课程。全文包含需求分析、系统架构设计、核心模块代码实现、交互界面搭建及完整运行示例,并配有详尽的行内注释和设计思想阐述,为教育技术开发者提供一份可落地、可扩展的参考方案。

huanghm88的专栏 153

智能合约监控告警:提示工程架构师用AI Prompt实现精准预警

当AI大模型(尤其是代码理解模型如CodeLlama、GPT-4 Code)与区块链数据结合,智能合约监控迎来范式革新。AI模型如何精准理解智能合约的业务特殊性?如何避免"AI幻觉"导致的误报?如何让模型学会区分"正常异常"与"攻击前兆"?答案藏在"提示工程"(Prompt Engineering)中。理解特定智能合约的业务逻辑(如DeFi协议的清算机制、NFT的铸造规则)识别复杂的攻击模式(如重入攻击的调用链特征、闪电贷的套利路径)结合链上链下数据进行多维度推理(如关联价格波动与异常交易)

AI架构全栈开发实战笔记 1011

mongodb之副本集选举权重设置

一、mongodb副本集的主的选举primary的选举依赖于各个实例的优先权重,默认权重都是1复本集的主挑选权重最高的,权重一样的无法控制谁为主设置各个实例的优先权重,挑选自己想要的实例为主,只有primary可以更改权重配置conf = rs.config() #获取副本集的配置,默认权重都是1conf.members[0].priority = 10 ...

weixin_34060741的博客 763

YOLOv11模型改进-模块-引入特征细化模块FRFN 解决小目标、遮挡等问题

FRFN 是一种专门设计的深度学习结构,旨在提高图像处理任务中的特征表示能力。它的核心设计理念是通过逐层细化和优化特征图,从而实现更高的分类和检测精度。1. 特征提取层:通过卷积层提取初始特征,并进行批量归一化以增强稳定性。2. 特征细化模块:在每个模块中,当前层特征图与前一层特征图进行融合,以强化特征表示。3. 跳跃连接:通过跳跃连接保留多尺度信息,帮助缓解深层网络中的信息丢失。4. 非线性激活:使用激活函数(如ReLU)增加模型的非线性能力。5. 输出层。

qq_64693987的博客 3337

MongoDB+Docker+Linux实现副本集集群搭建

MongoDB+Docker+Linux实现副本集集群搭建

一恍过去 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Linux环境通过Docker实现MongoDB副本集集群搭建

Linux环境通过Docker实现MongoDB副本集集群搭建

一恍过去 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MongoDB 安装部署副本集(一主两从)

仲裁者(Arbiter):不保留任何数据的副本,只具有投票选举作用。当然也可以将仲裁服务器维护为副本集的一部分,即副本成员同时也可以是仲裁者。也是一种从节点类型。副本成员(Replicate):从主节点通过复制操作以维护相同的数据集,即备份数据,不可写操作,但可以读操作(但需要配置)。是默认的一种从节点类型。次、辅助、从节点(Secondaries)类型:数据冗余备份节点,可以读(需要设置)或选举。主要成员(Primary):主要接收所有写操作。主节点(Primary)类型:数据操作的主要连接点,可读写。

知行合一 1346

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Linux环境下mongoDB 4搭建(副本集模式)

本文主要介绍了Linux环境下mongoDB副本级方式搭建 环境 步骤 创建主节点 建立存放数据和日志的目录 # 主节点 mkdir -p /mongodb/replica_sets/rs_27017/log mkdir -p /mongodb/replica_sets/rs_27017/data/db 或修改配置文件 vim /mongodb/replica_sets/rs_27017/mongod.conf systemLog: #MongoDB发送所有日志输出的目标指定为文件 .

热爱技术、喜欢学习、乐于分享 1228

MongoDB与Docker共舞:副本集集群搭建完美指南

MongoDB与Docker共舞:副本集集群搭建完美指南

一恍过去 1万+

搭建MongoDB副本集

MongoDB的副本集是一种提供数据冗余和高可用性的架构。它是由多个维护相同数据集的mongod进程(即数据库实例)组成的一个集合,这些实例分布在不同的服务器上。副本集的设计目标是为了确保在单个服务器发生故障时,数据库服务依然可以继续运作,从而提高了系统的可靠性和容错能力。

misakivv的博客 1432

linux os7上mongodb副本集的搭建

什么是副本集?(一主一从一选举) 在MongoDB中创建一个副本集之后就可以使用复制功能了。副本集是一组服务器,其中有一个主服务器(primary),用于处理客户端请求,还有多个备份服务器(secondary),用于保存主服务器的数据副本。如果主服务器崩溃了,备份服务器会自动将其中一个成员升级为新的主服务器。 1下载liunx版本的mongodb 2通过Xftp连接liunx 将下载的安装包拖到...

qq_43109867的博客 257

mongodb副本集在linux上的配置

mongodb副本集在linux上的配置

mapleWuaaaaaa的博客 1713

Mongodb副本集一主两副本三台真机

mongodb4.4 mongodb MongoDb 数据库 副本集 一主 两副本 认证

Nevermind_k的博客 970

linux下Mongodb副本集搭建

准备三台虚拟机,ip地址如下,使用每台机器的27017端口Node1:192.168.1.101 (主结点)Node2:192.168.1.102 (从结点)Node3:192.168.1.107 (仲裁)

Sevenstringed 1246

Linux环境下 MongoDB-4.0.10 副本集架构搭建及简单测试

xiaoliuxxs 1040

linux搭建mongodb数据库副本集

声明:本文乃“运维家”原创,转载请注明出处,更多内容请关注公众号“运维家”。主旨MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。副本集原理Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点。Primary:主节点,一个副本集有且仅有一台服务器处于Primary状态,只有主节点

ouyangzhenxin的博客 1934

搭建高可用MongoDB集群(二): 副本集

在上一篇文章《搭建高可用MongoDB集群(一)——配置MongoDB》 提到了几个问题还没有解决。 主节点挂了能否自动切换连接?目前需要手工切换。主节点的读写压力过大如何解决?从节点每个上面的数据都是对数据库全量拷贝,从节点压力会不会过大?数据压力大到机器支撑不了的时候能否做到自动扩展? 这篇文章看完这些问题就可以搞定了。NoSQL的产生就是为了解决大数据量、高扩展性、高性能、灵活数

l192168134的博客 4124
上一篇: 在Linux系统上安装Mongodb服务
下一篇: 在Linux系统上通过zookeeper集群部署kafka集群
听风动
博客等级 码龄8年 63粉丝 90原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值