ActiveMQ - сеть с несколькими брокерами - PullRequest
4 голосов
/ 23 июля 2011

Я пытаюсь настроить трех брокеров в сети для балансировки нагрузки - клиенты и производители могут подключаться к любому из этих брокеров.

Вопросы:

  1. Какую топологию рекомендуется использовать для объединения этих брокеров в сеть?Более конкретно, какую конфигурацию networkConnector использовать на каждом из этих брокеров?должна ли быть включена дуплексная настройка?(Полагаю, настройка дуплекса зависит от выбранной топологии)

    A-> B-> C-> A или A <-> B <-> C <-> A

  2. Клиент должен использовать протокол аварийного переключения для подключения к этим брокерам, верно?например, failover: // (tcp: // b1: 6161, tcp: // b2: 6161, tcp: // b3: 6161)

  3. Любая обработка дублирующихся сообщений, необходимая клиентусторона в случае перезагрузки?См. http://forum.springsource.org/showthread.php?108461-Failover-issue-in-ActiveMQ - неясно, почему здесь существует проблема с дублированием сообщений

  4. В идеале мы хотим настроить топологию, как показано в этом сообщении http://edelsonmedia.com/?p=143 - нетПонятно, как настроить networkConnector на ведущих и подчиненных устройствах.

1 Ответ

3 голосов
/ 24 июля 2011

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

Как правило, вы должны убедиться, что конфигурации вашего узла максимально схожи. Использование дуплекса гарантирует, что у вас будет меньше соединений для настройки (поскольку соединение от B до A уже является частью дуплексного соединения от A до B), но оно вносит большое количество различий в ваш файл конфигурации.

Лично я создал свой собственный стартовый скрипт для ActiveMQ, который автоматически генерировал конфигурацию соединения на основе DNS-имен моего кластера (mycluster-01 до 06).

2.) Да. Вы можете добавить? Randomize = false, если хотите убедиться, что клиент использует первую запись в списке.

3.) Повторяющиеся записи могут возникать в случае сбоев во время транспортировки сообщений или в условиях гонки во время большой нагрузки. Как правило, только одно сообщение принадлежит одному брокеру.

4.) Не устанавливайте сетевые разъемы между ведущими и ведомыми устройствами (ДЕЙСТВИТЕЛЬНО НЕ). Используйте функцию Master Slave в ActiveMQ и настройте мастер для каждого слэйва (вам не нужно ничего настраивать на мастерах). Для всех мастеров настройте NetworkConnections для других мастеров с переключением на их подчиненные устройства) http://activemq.apache.org/pure-master-slave.html

...