Grails 3 — GORM для MongoDB — ближайшее чтение для набора реплик

Я обновляю свое веб-приложение Grails 2.4 до Grails 3 и рассматриваю возможность перехода с пользовательского DAO на GORM для моей базы данных Mongo.

Я пытаюсь понять, как правильно настроить GORM, в частности о соединении options, но его документация немного вводит меня в заблуждение. В разделе Расширенная конфигурация ("Конфигурация подключения к базе данных 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()
        }
    }
}

Заранее спасибо!


person ilPittiz    schedule 19.09.2016    source источник


Ответы (1)


Да, вы можете установить что угодно в классе MongoClientOptions.Builder. через конфигурацию. Хотя ваш синтаксис неверен, он должен быть:

grails {
   mongodb {
      options {
        readPreference = com.mongodb.ReadPreference.nearest()
      }
   }
}
person Graeme Rocher    schedule 20.09.2016
comment
Большое спасибо! :) Извините за опечатку, вопрос обновлен с правильным синтаксисом. - person ilPittiz; 20.09.2016