mongodb的读写分离使用Replica Sets来实现

第五部分 架构篇 第十四章 MongoDB Replica Sets 架构(自动故障转移/读写分离实践) MongoDB Replica Set架构部署实践,自动故障转移和读写分离实践过程。 阅读详情


mongodb的读写分离使用Replica Sets来实现


对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。

如果通过shell访问mongo,要在secondary进行查询。会出现如下错误:
imageSet:SECONDARY> db.fs.files.find()
error: { "$err" : "not master and slaveOk=false", "code" : 13435 }
有两种方法实现从机的查询:
第一种方法:db.getMongo().setSlaveOk();
第二种方法:rs.slaveOk();
但是这种方式有一个缺点就是,下次再通过mongo进入实例的时候,查询仍然会报错,为此可以通过下列方式
vi ~/.mongorc.js
增加一行rs.slaveOk();
这样的话以后每次通过mongo命令进入都可以查询了


如果是通过java访问secondary的话则会报下面的异常
com.mongodb.MongoException: not talking to master and retries used up
解决的办法很多。
第一种方法:在java代码中调用dbFactory.getDb().slaveOk();
第二种方法:在java代码中调用
dbFactory.getDb().setReadPreference(ReadPreference.secondaryPreferred());//在复制集中优先读secondary,如果secondary访问不了的时候就从master中读
或
dbFactory.getDb().setReadPreference(ReadPreference.secondary());//只从secondary中读,如果secondary访问不了的时候就不能进行查询
第三种方法:在配置mongo的时候增加slave-ok="true"也支持直接从secondary中读
<mongo:mongo id="mongo" host="${mongodb.host}" port="${mongodb.port}">
        <mongo:options slave-ok="true"/> 

</mongo:mongo>

转自 http://blog.youkuaiyun.com/sd0902/article/details/21538621

MongoDB Replica Sets + Sharding 实战 总之这是一个长期且持续的工作。通过 oplog 直接进行增加节点操作简单且无需人工干预过多,但 oplog 是 capped collection,采用循环的方式进行日志处理,所以采用 oplog 的方式进行增加节点,有可能导致数据的不一致,因为日志中存储的信息有可能已经刷新过了。不过没关系,我们可以通过数据库快照 (--fastsync)和 oplog 结合的方式来增加节点,这种方式的操作流程是,先取某一个复制集成员的物理文件来做为初始化数据,然后剩余的部分用 oplog 日志来追,最终达到数据一致性。 阅读详情

相关推荐

我的架构梦:(五十七) MongoDB集群高可用

MongoDB集群高可用一、MongoDB主从复制架构原理和缺陷二、复制集replica sets三、复制集搭建四、分片集群 Shard Cluster 一、MongoDB主从复制架构原理和缺陷 master-slave架构中master节点负责数据的读写,slave没有写入权限只负责读取数据。 在主从结构中,主节点的操作记录成为oplog(operation log)。oplog存储在系统数据库local的 oplog.$main集合中,这个集合的每个文档都代表主节点上执行的一个操作。从服务器会定期从主

riemann_的博客 653

MongoDB读写分离

背景 最近项目数据量越来越大,导致mongo的数据库压力也越来越大。在结构优化、索引优化之后,为了进一步优化系统,想到读写分离。 java端配置读写分离 这里,mongo采用的是副本集(Replica Set)的部署方式 这里采用的事xml配置文件形式: read-preference=“SECONDARY_PREFERRED”,这个配置。 <!--读写分离详细说明: mongodb复制集对读写分离的支持是通过Read Preferences特性进行支持的,这个特性非常复杂和灵活。 应用程序驱

站在墙头上的博客 3451

mongoDB 实现主从读写分离实现的实例代码

mongoDB主从读写分离 MongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式, 点击查看。如果您的环境不符合副本集模式可参考本文,来实现主从读写分离。 resources.properties mongodb_read.host=10.0.0.45 mongodb_read.port=27017 mongodb_read.apname=ecsp mongodb_read.username= mongodb_read.password= mongodb_write.host=10.0.0.46 mongodb_write.port=27017 mongodb_writ

MongoDB——读写分离,简单的主从集群搭建

在这里通过对不同的端口分别进行读写操作,实现了在不同的mongo进程中对集群进行读写操作的分离。过程中也发现来一个比较有意思的问题,在我的上一篇博客中:Windows 11 下环境变量名与文件名的优先级-优快云博客t=N7T8Windows 11 下环境变量名与文件名的优先级-优快云博客https://blog.youkuaiyun.com/YuKinGGG/article/details/135049582?

YuKinGGG的博客 1770

星网宇达Newton-M2设备安装及配置

主要介绍了星网宇达Newton-M2设备的配置过程

weixin_49353445的博客 2678

Image Sensor常见分辨率下HTS,VTS设置

image sensor,HTS,VTS

propor的专栏 4975

mongodb的读写分离

mongodb的读写分离使用Replica Sets来实现 对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。 如果通过shell访问mongo,要在secondary进行查询。会出现如下

过天的专栏 2万+

08-SD卡-TF卡硬件电路设计

SD卡-TF卡硬件电路设计

weixin_66510961的博客 8262

MongoDB副本集搭建和读写分离配置

MongoDB副本集(Replication Set)由一组mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点.客户端数据写入Primary节点。Secondary节点从Primary节点同步数据。以保持副本集内所有成员存储相同的数据集。Primary节点故障时会自动选举出一个新的Primary节点。:将数据从一个区域复制到另一个区域,减少另一个区域的读延迟。:不同类型的压力分别在不同节点上执行。:在数据中心故障时快速切换到异地。

千月落 2577

ML307A模组通过MQTT协议接入OneNET平台的AT指令全解析

本文详细解析了ML307A模组通过MQTT协议接入OneNET平台的完整AT指令流程。从平台侧的产品创建、设备添加,到核心难点连接密钥的计算方法,再到模组侧的基础网络附着、MQTT连接配置、数据收发及调试排错,提供了手把手的实战指南,帮助开发者快速实现物联网设备上云。

weixin_29240711的博客 495

【现代电路理论】【2】考尔法设计无源单口网络

夏 弥:其实你在冰面上看到鱼浮上来 明年冬天如果你还在那里,那鱼还是会上来换气 那时候你就可以带一把冰镐 把冰面砸开把鱼捞上来熬汤

痛苦的时候装出幸福相,这不是那么难做到的事 2887

mongodb Replica Sets副本集与读写分离

概述 对于mongodb的相关介绍,在此不多累赘,如需了解请见: http://www.mongodb.org/display/DOCS/Home  本文目的是说明如下几个功能: 1.在测试环境构建Replica Set方案 2.在服务器端和客户端测试failover 3.测试天然的读写分离,减轻服务器压力 4.添加权限认证功能

zhongbaolin的专栏 2545

ANSYS APDL学习(6):ANSYS APDL部分命令流介绍

介绍APDL 部分命令流

娱乐至上的博客 1万+

java mongo replica_mongodb的读写分离使用Replica Sets来实现

在部署mongodb副本集的时候可以设置读取数据从次副本上读取,在次副本的mongodb的命令中执行:第一种方法:db.getMongo().setSlaveOk();第二种方法:rs.slaveOk();如果是通过java访问secondary的话则会报下面的异常com.mongodb.MongoException:nottalkingtomasterandretriesused...

weixin_39976413的博客 189

Python趣学篇:用Pygame打造绚烂流星雨动画

这是一个基于Pygame开发的流星雨动画项目,具有以下特效:🌠多彩流星:8种不同颜色的流星随机生成,每颗都有独特的轨迹✨粒子尾迹:每个流星都带有动态的粒子拖尾效果,增强视觉冲击力🌟闪烁星空:150颗背景星星营造真实的夜空氛围🌌渐变背景:深蓝到黑色的自然渐变,模拟夜空色彩💫斜向轨迹:所有流星都以30-60度角自然斜向下运动🎨中文显示:完美支持中文字体,显示"斜向流星雨来啦!"等文字整个程序运行流畅,达到60FPS的丝滑体验,让你仿佛置身于真实的流星雨之中!

Code_流苏:在代码中寻诗意,在实践中觅真知 6061

VLA仿真平台:Isaac sim、MuJoCo

在虚拟仿真领域,VLA(Virtual Learning Agent)仿真器是用于开发和训练虚拟机器人代理的环境,它们为机器人提供了一个平台来进行各种任务的模拟和学习,特别是在强化学习(RL)中。两款广泛应用的仿真器是和。这两者各有其特点和优势,适用于不同类型的机器人研究和开发。

u013250861的博客 864

MongoDB Replica Sets 架构(自动故障转移/读写分离实践)

转自: http://www.itnose.net/detail/6193518.html 说明:该篇内容部分来自红丸编写的MongoDB实战文章。 1、简介 MongoDB支持在多个机器中通过异步复制达到故障转移和实现冗余,多机器中同一时刻只有一台是用于写操作,正是由于这个情况,为了MongoDB提供了数据一致性的保障,担当primary角色的服务能把

王文铮的专栏 3434

Devexpress16.2.6破解工具

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

第七章:MongoDB管理维护Replica Sets(读写分离&故障转移&增删节点)

一 . 读写分离 1. 登录主库: ./mongo 192.168.56.88:27017  插入一条数据:  testrs:PRIMARY> db.person.insert({"name":"zw","sex":"M","age":19}) testrs:PRIMARY> db.person.find()  --主库查询,ok数据出来了 { "_id"

小伟的专栏 2061

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

MongoDB管理与开发精要《红丸出品》21.4.1 管理维护Replica Sets之读写分离

21.4管理维护Replica Sets 21.4.1读写分离 有一些第三方的工具,提供了一些可以让数据库进行读写分离的工具。我们现在是否有一个疑问,从库要是能进行查询就更好了,这样可以分担主库的大量的查询请求。   1、  先向主库中插入一条测试数据 [root@localhost bin]# ./mongo --port 28010 MongoDB shell ve

红丸的专栏 819

二.mongodb集群之win7环境下模拟多节点主从集群的添加、删除、管理

mongo Replica Sets 三个节点部署 主从节点之间复制数据,与分片不同,集群在一个节点丢失后,其他节点可以继续工作。

天义的专栏 2512

mongodb副本集架构搭建

http://www.cnblogs.com/dennisit/archive/2013/01/28/2880166.html 高可用性通常描述一个系统经过专门的设计,从而减少停工时间.保存其服务的高度连续可用性,MongoDB提供的主从复制机制保证了多个数据库的数据同步,这对实现数据库的容灾、备份、恢复、负载均衡都是有极大的帮助.   主从集群   主从复制的优

未来软件 741

MongoDB的副本集

MongoDB中的副本集

qq_44300280的博客 7507

MongoDB集群搭建

一.副本集-Replica Sets 1.1 简介 MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可提供冗余和高 可用性,是所有生产部署的基础。 也可以说,副本集类似于有自动故障恢复功能的主从集群。通俗的讲就是用多台机器进行同一数据的异 步同步,从而使多台机器拥有同一数据的多个副本,并且当主库当掉时在不需要用户干预的情况下自动 切换其他备份服务器做主库。而且还可以利用副本服务器做只读服务器,实现读写分离,提高负载。 (1)冗余和数据可用性 复制提供冗余并提

总结复盘,才能不迷失自己! 409

Mongodb是什么?以及主从复制 及 副本集+分片集群梳理

文章目录Mongodb主从复制 及 副本集+分片集群梳理一、先说说mongodb主从复制配置主从复制的原理二、Mongodb副本集(Replica Sets)1)关于副本集的概念2)副本集的结构及原理相对于传统主从模式的优势心跳检测:数据同步3)副本集的工作流程4)副本集选举的过程和注意点5)副本集数据过程6)MongoDB 同步延迟问题7)Mongodb副本集环境部署记录三、Mongodb分片集群(Sharding)1)Sharding分区概念为何需要水平分片mongodb sharding 服务器架构2

一个老菜鸟的学习分享 1848
上一篇: linux 小技巧 查看特定PID 占用端口号
下一篇: VI打开和编辑多个文件的命令
rtnull
博客等级 码龄16年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值