做360全景的网站,五台建设局网站,wordpress百度小程序插件,wordpress侧栏文本代码对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中#xff0c;使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk#xff0c;由Secondary来分担读的压力#xff0c;Primary只承担写操作。如果通过shell访问mongo#xff0c;要在…对于replica set 中的secondary 节点默认是不可读的。在写多读少的应用中使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk由Secondary来分担读的压力Primary只承担写操作。 如果通过shell访问mongo要在secondary进行查询。会出现如下错误 imageSet:SECONDARY db.fs.files.find() error: { $err : not master and slaveOkfalse, 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-oktrue也支持直接从secondary中读mongo:mongo idmongo host${mongodb.host} port${mongodb.port} mongo:options slave-oktrue/ /mongo:mongo转载于:https://www.cnblogs.com/ExMan/p/9571988.html