gpt4 book ai didi

java - 如何在 MongoDb 中更喜欢读取辅助文件

转载 作者:IT老高 更新时间:2023-10-28 13:34:47 27 4
gpt4 key购买 nike

在副本集配置中使用 mongodb 时(1 个仲裁器,1 个主节点,2 个从节点);如何设置对辅助节点执行读取并将主节点仅用于写入的首选项?我将 MongoDb 2.0.4 与 Morphia 一起使用。我看到有一个 slaveOk() 方法,但我不确定它是如何工作的。

吗啡http://code.google.com/p/morphia/

详情我的 Mongo 设置了以下选项:

mongo.slaveOk();mongo.setWriteConcern(WriteConcern.SAFE);

我正在尝试使用以下内容(这可能是答案-btw):

Datastore ds = getDatastore();Query<MyEntity> query = ds.find(MyEntity.class).field("entityId").equal(entityId);query.queryNonPrimary(); // appears equivalent to ReadPrefererence.secondary()MyEntity entity = query.get();

最佳答案

经过大量血汗,正确答案如下:

  • 要让所有读取/查询都命中辅助节点,只需设置 slaveOk()
  • 要仅选择使用辅助读取,请不要设置 slaveOk() 并使用 queryNonPrimary() 代替每个查询

在使用副本集时设置适当的写入关注点也是一个好习惯,如下所示:

mongo.setWriteConcern(WriteConcern.REPLICAS_SAFE);

关于java - 如何在 MongoDb 中更喜欢读取辅助文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14587398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com