如何在Grails中为MongoDB设置readPreference

时间:2013-05-16 23:35:19

标签: mongodb grails

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

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

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

3 个答案:

答案 0 :(得分:0)

documentation中,我看到以下示例:

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

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

答案 1 :(得分:0)

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

在闭包中进行映射(例如),调用静态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()
}

答案 2 :(得分:0)

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

已弃用,但您可以使用