1

我们在 Application 中使用 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

请让我知道如何找到我正在使用的驱动程序?

4

2 回答 2

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 之后的版本中不存在。

于 2013-01-29T16:53:33.417 回答
0

看起来像早期的java驱动程序只有mongo.slaveOk()方法,调用它,它是slaveOk。没办法检查。

于 2013-01-29T11:34:39.017 回答