【问题标题】:Grails 3 - GORM for MongoDB - nearest read for replica setGrails 3 - MongoDB 的 GORM - 副本集的最近读取
【发布时间】:2016-09-19 16:15:42
【问题描述】:

我正在将我的 Grails 2.4 Web 应用程序升级到 Grails 3,并且我正在考虑从我的自定义 DAO 切换到我的 Mongo 数据库的 GORM。

我试图了解如何正确设置 GORM,尤其是关于连接 options,但它的文档对我来说有点误导。 Advanced Configuration(“Mongo 数据库连接配置”)状态

可用选项及其描述在MongoOptions javadoc 中定义。

所以我很想假设我可以使用这些选项中的任何一个。

但稍后在我阅读的同一部分(配置选项指南)中

以下是显示所有配置选项的完整示例:

仅显示 9 个选项。

我的问题是“转换”我的自定义 DAO

MongoClientOptions options = new MongoClientOptions .Builder()
                                                    .connectionsPerHost(1000)
                                                    .threadsAllowedToBlockForConnectionMultiplier(5)
                                                    .maxWaitTime(4000)
                                                    .socketTimeout(2000).build();
List<ServerAddress> list = getMongoReplicaSet();
mongo = new MongoClient(list, options);
mongo.setReadPreference(ReadPreference.nearest());

到等效配置

grails {
    mongodb {
        options {
            connectionsPerHost = 1000
            threadsAllowedToBlockForConnectionMultiplier = 5
            maxWaitTime = 4000
            socketTimeout = 2000
        }
    }
}

但是如何定义阅读偏好?我可以这样做吗?

grails {
    mongodb {
        options {
            readPreference = com.mongodb.ReadPreference.nearest()
        }
    }
}

提前致谢!

【问题讨论】:

    标签: mongodb grails grails-orm grails3


    【解决方案1】:

    是的,您可以通过配置在 MongoClientOptions.Builder 类中设置任何内容。虽然你的语法错误,但应该是:

    grails {
       mongodb {
          options {
            readPreference = com.mongodb.ReadPreference.nearest()
          }
       }
    }
    

    【讨论】:

    • 非常感谢! :) 抱歉我的错字,问题已用正确的语法更新。
    猜你喜欢
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多