ActiveMQ реплицировал levelDB с помощью zookeeper

Я хочу понять роль zookeeper в реплицированном leveldb для брокера ActiveMQ.

  1. О выборах zookeeper: Как zookeeper знает, что из всех клиентов, подключенных к zookeeper, какие клиенты являются брокерами ActiveMQ, борющимися за то, чтобы стать хозяином. Есть ли какой-то конкретный ключ или конфигурация, которую передают все брокеры, подключающиеся к zookeeper, который говорит, что мы (скажем, 3) брокеры ActiveMQ принадлежим к одной среде и боремся за то, чтобы стать хозяином.

  2. Через какой интервал ведомый брокер копирует данные из главного брокера? Есть ли случаи, когда данные могут быть потеряны?

  3. Предоставляет ли ActiveMQ гарантию упорядочения сообщений с использованием реплицированного leveldb? Я имею в виду случай, когда переизбрание мастера происходит, когда производитель последовательно отправляет сообщения брокеру?

Спасибо,
Ануй

1 ответ

Решение
  1. По zkPath в конфигурации Zookeeper и по имени брокера.
  2. Каждое сообщение синхронизируется с посредниками кворума (узлов /2+1) до завершения транзакции. Таким образом, интервал синхронизации отсутствует, он синхронизируется в режиме реального времени. Кластер не будет работать, если у вас нет кворума брокеров онлайн, поэтому не должно быть потери данных.
  3. Сообщения синхронизируются с большинством узлов синхронно. При переизбрании будет выбран узел с последними обновлениями. Заказанные сообщения должны быть без проблем. Однако обычно проблематично полагаться на упорядоченные сообщения в очереди сообщений. Как правило, порядок сообщений будет только в "счастливых днях". Мертвые буквы, множественные потребители и так далее могут испортить порядок сообщений.
Другие вопросы по тегам