Как заставить мопед читать с Монго вторичной реплики набор член работает с задержкой

У меня есть приложение на основе ruby ​​на рельсах. Цель состоит в том, чтобы прочитать из члена набора реплик Монго, который является:

  1. secondary
  2. delayed by x seconds
  3. priority: 0
  4. Размещается в отдельном дата-центре.

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 в наборе реплик описан здесь

Я надеюсь это тебе поможет. Это очень продвинутая и мощная функция, которой не все умеют пользоваться.

Другие вопросы по тегам