Как заставить мопед читать с Монго вторичной реплики набор член работает с задержкой
У меня есть приложение на основе ruby на рельсах. Цель состоит в том, чтобы прочитать из члена набора реплик Монго, который является:
secondary
delayed by x seconds
priority: 0
- Размещается в отдельном дата-центре.
DETAILS
: У меня запущен производственный кластер, который использует набор реплик mongo.
Ранее было замечено, что иногда Moped читает данные из других вторичных серверов с высокой задержкой (удаленно присутствующих в других центрах обработки данных), а не из желаемых вторичных. Чтобы решить ту же проблему, мы добавили задержку на удаленных вторичных серверах.
Теперь у меня есть новое аналитическое приложение, которое использует mongoid. Есть ли способ, которым я мог бы FORCE читать из SPECIFIC Secondary, используя Mongoid или любой другой драгоценный камень? т.е. есть ли способ переопределить функцию автоматического обнаружения в Mongoid / Moped / MongoDB? Пожалуйста, предложите
1 ответ
Вы можете использовать tag_sets. В документации конфигурации Mongoid вы можете видеть, что в настройке read вы можете указать tag_set, назначенный вторичному узлу, из которого вы хотите явно прочитать:
# Change the default read preference. Valid options for mode are: :secondary,
# :secondary_preferred, :primary, :primary_preferred, :nearest
# (default: primary)
read:
mode: :secondary_preferred
tag_sets:
- use: web
Способ настройки tag_sets в наборе реплик описан здесь
Я надеюсь это тебе поможет. Это очень продвинутая и мощная функция, которой не все умеют пользоваться.