任何人都成功使用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的方法,但我还没有找到它。
答案 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 } } }
已弃用,但您可以使用