对于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>

转载于:https://www.cnblogs.com/ExMan/p/9571988.html

(原创)让mongodb的secondary支持读操作相关推荐

  1. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作试读版

    正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到提高(包含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,可以分为三大类.因此本教程也分为 ...

  2. 【MongoDB for Java】Java操作MongoDB

    软件151--熊佳杨 开发环境: System:Windows IDE:eclipse.MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5.mongo-2.5.3. ...

  3. mongodb for java_【MongoDB for Java】Java操作MongoDB

    上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...

  4. 数据库应用----Mongodb 4.0 版本 基础操作---复制集,选举方法、部署认证 (二)

    Mongodb 4.0 版本 基础操作-复制集,选举方法.部署认证 (二) 文章目录 Mongodb 4.0 版本 基础操作---复制集,选举方法.部署认证 (二) 一.MongoDB 复制集 二.部 ...

  5. MongoDB学习笔记(基础操作篇)

    一.MongoDB相关概念 1.1 MongoDB相关概念 传统的关系型数据库(如MySQL),在数据操作的"三高"需求以及应对Web2.0的网站需求面前,显得力不从心. 解释:& ...

  6. 【大数据存储技术】实验2:MongoDB数据库的部署和操作

    目录 1.实现MongoDB单实例的部署 1.1 安装MongoDB(Ubuntu版本:22.04 LTS) 1.1.1 查看Ubuntu版本 1.1.2 使用Ubuntu命令安装 1.2 启动Mon ...

  7. LSM树——LSM 将B+树等结构昂贵的随机IO变的更快,而代价就是读操作要处理大量的索引文件(sstable)而不是一个,另外还是一些IO被合并操作消耗。...

    Basic Compaction 为了保持LSM的读操作相对较快,维护并减少sstable文件的个数是很重要的,所以让我们更深入的看一下合并操作.这个过程有一点儿像一般垃圾回收算法. 当一定数量的ss ...

  8. mysql dba系统学习(18)mysql主从复制的实现 mysql dba系统学习(19)配置mysql+lvs+keeplived实现Mysql读操作的负载均衡

    mysql主从复制的实现 1.MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文 ...

  9. java mongodb 增删改查_java操作mongodb:基本的增删改查

    java操作mongodb的代码,包含基本的增删改查操作 获取数据库连接工具类 package com.liuc.db;import java.net.UnknownHostException;imp ...

最新文章

  1. ITFriend站点内測公測感悟
  2. 计算机科学与技术python方向是什么意思-计算机科学与技术专业大学应该掌握什么样的基本技能?...
  3. 【bzoj1086】 scoi2005—王室联邦
  4. 【android-tips】关于string.xml的使用
  5. Ubuntu 配置swftools(Ubuntu14.04)
  6. linux使用flock解决crontab任务冲突
  7. C# partial 部分类使用简单举例说明
  8. STM32 STlink安装以及安装失败解决方法
  9. 闲置eSATA接口影响Windows 7启动速度
  10. chan算法 matlab,TDOA定位的Chan算法MATLAB源代码
  11. C语言实现英寸单位与厘米的转换(两种方法)特简单!!!
  12. ActiveSync45特性
  13. linux 硬盘使用监控,zabbix3.2监控linux磁盘使用空间
  14. ZOJ 3898 Stean (求旋转体体积与面积)
  15. C语言中字符数据超过127,如何用C语言显示ascii码超过127的字符
  16. DNS与CDN知识汇总(前端优化一)
  17. 微信Hook最佳实践-WechatHook
  18. OSChina 周二乱弹 ——震惊!女友当着男友在大众面前竟和陌生男人做出这事!...
  19. 五大地形等高线特征_五种基本地形特征
  20. 【图】如果要开始收房产税,那香港这座山上的房子得收多少?

热门文章

  1. 交叉工具链的搭建方法(测试成功)
  2. C++空类和string类
  3. 一个弹出页面的徐徐升起的js效果
  4. Thymeleaf th:include、th:replace使用
  5. event.target【转载】
  6. Vue 教程第九篇—— 动画和过度效果
  7. 多线程面试题系列(12):多线程同步内功心法——PV操作上
  8. 第一天 :学习node.js
  9. [链接]Python中的metaclass、装饰器
  10. 摩托罗拉:未来一切以手机为中心