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

如果通过shell访问mongo,要在secondary进行查询。会出现如下错误:

p_w_picpathSet: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中读

java mongo replica_mongo 的replica set的集群模式 实现读写分离相关推荐

  1. 读写分离oracle redis,redis集群主从之读写分离

    redis集群主从之读写分离 1.集群部署 这里就不详细赘述如何部署主从集群了,一般都是使用slaveOf配置来进行初始化配置. 2.与springboot集成实现读写分离 通过注解实现调用层读写分离 ...

  2. Java客户端操作elasticsearch--创建索引(集群模式下)

  3. mysql分片做主从_使用mycat部署mysql集群(分片,读写分离,主从复制)

    在s201,s202,s203上安装MySQL (安装jdk) 配置MySQL 5.7的yum源 sudo tee -a /etc/yum.repos.d/mysql-community.repo & ...

  4. Redis Cluster 集群模式原理和动态扩容

    Redis Cluster原理 详细参考 Redis cluster集群模式的原理, 在这里补充下要点 16384个slot, 平均分布在各个master, key-value 对存储在slot中; ...

  5. Mongo 3.6.1版本Sharding集群配置

    Mongo低版本和高版本的sharding集群配置,细节不太一样.目前网上的配置文档大都是针对低版本的.本人在配置3.6.1版本的mongosharding集群的过程中,碰到不少问题,官方文档没有直观 ...

  6. Mongodb安装搭建Replica Set+Sharding集群

    2019独角兽企业重金招聘Python工程师标准>>> Mongodb安装搭建Replica Set+Sharding集群 一.简介 Replica Set:复制在为数据提供了冗余同 ...

  7. Java中高级核心知识全面解析——Redis(集群【概述{主从复制、哨兵、集群化}、数据分区方案、节点通信机制、数据结构简析】)5

    目录 一.[集群]入门实践教程 1.Redis 集群概述 1)Redis 主从复制 2)Redis 哨兵 3)Redis 集群化 2.主从复制 1)主从复制主要的作用 2)快速体验 ①.第一步:本地启 ...

  8. Java编程解密-Dubbo负载均衡与集群容错机制

    1 Dubbo简介 Dubbo是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 作为一个轻量级RPC框架,Du ...

  9. java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part7(Redis常见使用(部署)方式:单机模式、主从模式、哨兵模式、集群模式)~整起

    Redis持久化:RDB.AOF是针对存储在一台服务器上的数据由于存储过程被打断而发生丢失的情况的.此时,咱们肯定要考虑到,所有鸡蛋都放在一个篮子里是会出问题的. 如果服务器发生了宕机,由于数据恢复是 ...

最新文章

  1. linux开发神器--Tmux
  2. eeglab教程系列(5)-预处理工具
  3. Cannot unwrap to requested type [javax.sql.DataSource]
  4. 【Machine Learning】回归学习与示例
  5. web 小程序 ch4 小程序组件
  6. Form表单基础知识和常用兼容方法笔记(二)
  7. 20级:班级日常分享,一天一瞬间
  8. Silverlight 用户代码未处理 TypeLoadException
  9. JZOJ5197 C
  10. 用electron实现播放flash小游戏
  11. 计算机编程语言vf,2016年计算机二级VF语言程序设计考试大纲
  12. regsvr32与rundll32的参数和在批处理中的使用方法详细解释
  13. ubunto18.04更新源详细操作
  14. Cell Host | 张群业/王哲/张澄-肠道微生物群失调加重腹主动脉瘤
  15. linux共享内存 pmu,基于ARM的GPS-无源北斗互备PMU研究与设计
  16. Uniapp云开发(Uniapp入门)
  17. 云服务器修改密码无法登录,云服务器修改登录密码
  18. 爬虫工程师必备技术栈——加密解密以及字符编码原理
  19. miRNA数据库篇——miRDB:软件预测的哺乳动物miRNA靶基因数据库(假阳性较高)
  20. 苹果又一波奇葩Bug来袭:小心你的备忘录被清空!

热门文章

  1. SaaS服务模式下的电商ERP遇到企业仓库分布于多组织下的管理
  2. 收发一体超声波测距离传感器模块_空气中70KHZ超声波换能器传感器探头DYA-70-03A测距探头3米量程...
  3. 小程序源码:花体字转换器-多玩法安装简单
  4. 天秤座男人对爱情的态度(图
  5. (附源码)ssm教学督导管理系统 毕业设计 292346
  6. Flutter 开关和切换高级指南
  7. 【JSP】用户信息界面操作 ---- 用户信息修改
  8. linux hexo使用教程,Linux下使用Hexo搭建github博客(示例代码)
  9. Service Mesh Summit 服务网格峰会 2022 正在报名中
  10. JS标签选择器以及节点操作