ActiveMQ реплицировал levelDB с помощью zookeeper
Я хочу понять роль zookeeper в реплицированном leveldb для брокера ActiveMQ.
О выборах zookeeper: Как zookeeper знает, что из всех клиентов, подключенных к zookeeper, какие клиенты являются брокерами ActiveMQ, борющимися за то, чтобы стать хозяином. Есть ли какой-то конкретный ключ или конфигурация, которую передают все брокеры, подключающиеся к zookeeper, который говорит, что мы (скажем, 3) брокеры ActiveMQ принадлежим к одной среде и боремся за то, чтобы стать хозяином.
Через какой интервал ведомый брокер копирует данные из главного брокера? Есть ли случаи, когда данные могут быть потеряны?
Предоставляет ли ActiveMQ гарантию упорядочения сообщений с использованием реплицированного leveldb? Я имею в виду случай, когда переизбрание мастера происходит, когда производитель последовательно отправляет сообщения брокеру?
Спасибо,
Ануй
1 ответ
- По zkPath в конфигурации Zookeeper и по имени брокера.
- Каждое сообщение синхронизируется с посредниками кворума (узлов /2+1) до завершения транзакции. Таким образом, интервал синхронизации отсутствует, он синхронизируется в режиме реального времени. Кластер не будет работать, если у вас нет кворума брокеров онлайн, поэтому не должно быть потери данных.
- Сообщения синхронизируются с большинством узлов синхронно. При переизбрании будет выбран узел с последними обновлениями. Заказанные сообщения должны быть без проблем. Однако обычно проблематично полагаться на упорядоченные сообщения в очереди сообщений. Как правило, порядок сообщений будет только в "счастливых днях". Мертвые буквы, множественные потребители и так далее могут испортить порядок сообщений.