Кроки для створення існуючої служби JNDI HornetQ як HA?


177

TL; DR

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

Більш дрібна версія:

Отже, у нас є налаштування JMS HornetQ разом з 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 A. Однак, щоб відновити роботу майстра HornetQ, HornetQa_slave потрібно поговорити з процесом JNDI, що працює на сервері A (я маю на увазі копіювати повідомлення). Оскільки сам хост A знижений, HornetQa_slave, що працює на E, не має можливості спілкуватися з JNDI на A, і, отже, не може відновитись як основний процес.

Якби служба JNDI була широко доступною, процес рабовласницького HornetQ міг би відновитись так, як очікувалося. Чи може хтось люб’язно вказати на документи чи простими кроками проілюструвати, як ми могли перетворити наявну програму на HA-JNDI? Для чого це варто, я прочитав кілька джерел , але це, здається, не пояснює дуже детально про те, як рухатися з налаштуванням HA-JNDI. Будь ласка, повідомте мене, якщо вам потрібна додаткова інформація про наші поточні налаштування.


8
Де працюють ваші клієнти? Вони працюють на одних і тих же екземплярах AS або в іншому екземплярі / JVM, або в обох?
jjhavokk

3
@jjhavokk вони будуть працювати на іншому JVM
grobtii

4
Чи можете ви включити HornetQ в режимі високої доступності (активна - пасивна реплікація)? У поєднанні з динамічним відкриттям сервера, і ви повинні мати надійний резервний запас. Див. Docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/… та docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/…
diginoise

4
Яку версію jboss ти працюєш?
eis

5
Я бачу, що це справді старе, але мені цікаво, чи ти знайшов відповідь. Напевно ви вже знаєте, що HA вимагає <forward-when-no-consumers> true </forward-when-no-consumers> для розповсюдження повідомлень, але відмова в мастер-справі не працює. У мене був той самий конфігуратор у weblogic та websphere, де працює помилка, але не з jboss. Чи потрібно встановити щось, щоб дозволити майстру синхронізувати та оновити пропущені повідомлення, щоб справна помилка працювала?
користувач1442498

Відповіді:


1

З описаною архітектурою мені здається складною, тому що дійсно потрібно налаштувати раба на майстра, і тоді у вас виникне певний збій.

HornetQ HA забезпечується за допомогою резервної пари резервного копіювання, а балансування навантаження здійснюється через кластер.

Якщо ви хочете як HA, так і балансувати навантаження, то вам знадобляться 2 пари резервного копіювання, згруповані разом.

Джерело: https://developer.jboss.org/thread/254232

Ви можете посилатись на майстра не за іменем хоста, а за допомогою віртуальної IP-адреси , так що, якщо майстер не працює, ви можете перенастроїти одного з ведених як головний і запустити віртуальний ip, щоб не довелося переконфігурувати решту рабів. (Щоб утримувати HA навіть тоді, коли господар не працює, потрібно мати 2 раби, так що ви можете перезапустити одну з них як головну, і все одно буде запущена).

Ще один спосіб досягти такого ж результату - це ім'я хоста DNS, специфічне для головного майстра, яке можна перенастроїти, щоб вказати на інший IP, якщо один хост не працює. Оскільки DNS є кешованим, ці записи повинні бути краще у файлі "hosts".

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.