1

有人成功使用 Grails 为 MongoDB 设置 readPreference 吗?我尝试将 readPreference 设置放入 datasource.groovy 中的常用选项闭包中,但没有任何乐趣。

grails {
    mongo {
        replicaSet = [<host1>, <host2>]
        databaseName = "plover_development"
        options {
            readPreference = ReadPreference.secondaryPreferred()
            connectionsPerHost = 100
            threadsAllowedToBlockForConnectionMultiplier = 10
        }
    }
}

但是当 Spring 尝试设置 readPreference 并拒绝该组尝试写入不可写的 bean 属性时,我遇到了错误。必须有一种方法可以全局设置 readPreference 但我还没有找到它。

4

3 回答 3

0

grails { mongo { ..... 选项 { .... slaveOk = true } } }

已弃用,但您可以使用它

于 2014-09-21T10:36:02.243 回答
0

好吧,我能够readPreference在 Grails 中设置集合级别,无论如何这是最好的方法。

在映射的闭包中(例如)通过调用静态ReadPreference.secondaryPreferred()并将结果推送到readPreference变量中。

static mapping = {
    serviceTier reference: false
    linkedAccounts reference: false
    missions reference: false
    users reference: false
    name index:true, indexAttributes:[unique:true, dropDups:true]
    writeConcern WriteConcern.SAFE
    readPreference ReadPreference.secondaryPreferred()
}
于 2013-05-20T02:21:13.690 回答
0

文档中,我看到以下示例:

mongodb {
 replicaSet = [ "localhost:27017", "localhost:27018"]
 databaseName = 'test'
 options = new MongoOptions(readPreference: ReadPreference.nearest())
}

尝试在 MongoOptions 对象中分配您的选项设置,而不是使用闭包。

于 2013-05-17T00:16:26.087 回答