我们在我们的应用程序中使用Mongo DB。 为此目的,我们有一个主要和一个次要。
如何确保我的应用程序正在读取主要或次要数据?
我的问题是如何知道slaveOk = true是否设置?
提前致谢。
已编辑的部分
不确定司机我的意思 我正在通过Java连接Mongo DB,如图所示
ServerAddress addr = new ServerAddress(new InetSocketAddress(host, port));
servAddrList.add(addr);
}
MongoOptions options = new MongoOptions();
options.autoConnectRetry = true;
options.connectionsPerHost = Config.intParam(
"mongo.connectionsPerHost", 1200);
mongo = new Mongo("10.11.13.111", 27017);
我正在使用mongo 2.4.jar
请让我知道如何找到我正在使用的驱动程序?
答案 0 :(得分:1)
我认为你在寻找什么是readPreference:http://docs.mongodb.org/manual/applications/replication/#replica-set-read-preference
在api(http://api.mongodb.org/java/2.10.1/com/mongodb/ReadPreference.html)文档中有一个isSlaveOk()方法:http://api.mongodb.org/java/2.10.1/com/mongodb/ReadPreference.html#isSlaveOk()
请参阅此问题:How to perform read operations from primary only
有设置阅读偏好的答案
mongo.setReadPreference(ReadPreference.primary());
你的答案是获得阅读偏好:
mongo.getReadPreference().isSlaveOk();
不幸的是,2.4之后的版本中不存在这些功能。
答案 1 :(得分:0)
看起来像早期的java驱动程序只有mongo.slaveOk()
方法,调用它并且它是slaveOk。没办法检查。