2016-01-04 6 views
162

TL; DRШаги по созданию существующей службы JNDI HornetQ как HA?

Каковы шаги по настройке службы HA-JNDI с установкой HornetQ? Я считаю, что документация немного разбросана. Я прочитал документы here, но, кажется, не иллюстрирует их подробно.

Longer версия:

Таким образом, мы имеем установку HornetQ JMS вместе с JNDI. Мы говорим о 5 серверах, которые запускают главный экземпляр HornetQ JMS с сервисом JNDI для каждого. На каждом из этих 5 серверов у нас также есть подчиненное устройство для другого другого мастера HornetQ.

В качестве иллюстрации:

Server A - HornetQa_master, JNDI, HornetQb_slave 
Server B - HornetQb_master, JNDI, HornetQc_slave 
Server C - HornetQc_master, JNDI, HornetQd_slave 
Server D - HornetQd_master, JNDI, HornetQe_slave 
Server E - HornetQe_master, JNDI, HornetQa_slave 

Каждый из этих HornetQ серверы служат в качестве промежуточного программного обеспечения для наших различных потребностей внутреннего интерфейса, так что это означает 5 серверов, 5 мастер экземпляров HornetQ, 5 подчиненных экземпляров HornetQ и 5 серверов JNDI. Проблема, однако, в этой настройке заключается в том, что если хост сервера (а не только сам процесс, сам хост) говорит, что A идет вниз, в идеале служба должна возвращаться к HornetQ, работающему на сервере E, на котором размещается ведомое устройство HornetQ. Однако, чтобы возобновить работу как HornetQ master, HornetQa_slave необходимо поговорить с процессом JNDI, запущенным на сервере A (я предполагаю, что репликация сообщений). Поскольку хост A сам по себе, HornetQa_slave, работающий на E, не имеет возможности разговаривать с JNDI на A и, следовательно, не может возобновиться в качестве основного процесса.

Если бы служба JNDI была высокодоступной, процесс HornetQ подчиненного процесса мог бы возобновиться как главный, как ожидалось. Может ли кто-нибудь любезно указать на документы или проиллюстрировать простыми шагами, как мы могли бы преобразовать нашу существующую установку в HA-JNDI? Для чего это стоит, я прочитал несколько sources, но, похоже, не очень подробно иллюстрируется, как начать работу с настройкой HA-JNDI. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация о нашей текущей настройке.

Благодаря

+7

Работает ли ваш клиент (ами)? Они работают в тех же экземплярах AS или из другого экземпляра/JVM или обоих? – jjhavokk

+2

@jjhavokk они будут работать на другой JVM – gravetii

+3

Не могли бы вы включить HornetQ в режиме высокой доступности (активная - пассивная репликация)? Пара, что с динамическим открытием сервера, и вы должны иметь надежный запас. См. Http://docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/ha.html и http://docs.jboss.org/hornetq/2.4.0.Final /docs/user-manual/html/clusters.html – diginoise

ответ

0

С архитектурой описал, кажется мне трудно, потому что на самом деле вам нужно перенастроить раба в качестве ведущего, а затем вы будете иметь определенный сбой.

HornetQ HA предоставляется через пару с резервным резервом, а балансировка нагрузки - , предоставляемая через кластер.

Если вы хотите как HA, так и балансировку нагрузки, вам понадобятся 2 пары с резервным резервом, сгруппированные вместе.

Источник: https://developer.jboss.org/thread/254232

Вы можете ссылаться на мастер не по имени хоста, но с использованием виртуальный IP-адрес, так что в случае, если хозяин вниз, вы можете перенастроить один из рабов, как хозяин, и запустите виртуальный ip, чтобы вам не пришлось перенастраивать остальные подчиненные устройства. (Чтобы сохранить HA, даже когда мастер остановлен, вы хотите иметь 2 подчиненных устройства, чтобы вы могли перезапустить один из них как главный, и все еще один будет работать).

Другим способом достижения такого же результата является имя хоста DNS, специфичное для мастера, которое вы можете перенастроить, чтобы указать на другой IP-адрес, если один хост отключен. Поскольку DNS кэшируется, эти записи должны быть лучше в файле «hosts».

Если 3 хоста на HA-домен слишком много аппаратного обеспечения, вы можете сделать это проще с виртуальными серверами без необходимости приобретать больше оборудования.