2016-01-04 13 views
162

TL; DRKroki w celu utworzenia istniejącej usługi JNDI HornetQ jako HA?

Jakie są kroki w celu skonfigurowania usługi HA-JNDI z konfiguracją HornetQ? Uważam, że dokumentacja jest trochę rozproszona. Przeczytałem w dokumentach: here, ale nie wydaje się to zilustrować szczegółowo.

Dłuższa wersja:

Więc mamy konfigurację HornetQ JMS wraz z JNDI. Mówimy 5 serwerów, które uruchamiają główne wystąpienie HornetQ JMS z usługą JNDI na każdym z nich. Na każdym z tych 5 serwerów mamy również podrzędny system operacyjny dla innego Mastera HornetQ.

Aby zilustrować:

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 

Każda z tych HornetQ serwery służą jako middleware dla naszych różnych potrzeb zaplecza, więc oznacza to 5 serwerów, 5 HornetQ instancje mistrzowskie, 5 HornetQ instancji podrzędnych i 5 serwerów JNDI. Problem z tą konfiguracją polega jednak na tym, że jeśli host serwera (a nie tylko proces, sam host), mówi A, to znaczy, że usługa powinna wrócić do HornetQ działającego na serwerze E, który hostuje A's HornetQ slave. Jednakże, aby wznowić działanie jako master HornetQ, HornetQa_slave musi rozmawiać z procesem JNDI działającym na serwerze A (zakładam replikowanie wiadomości). Ponieważ host A sam jest wyłączony, funkcja HornetQa_slave działająca na E nie ma możliwości rozmawiania z JNDI na A, a zatem nie może wznowić działania jako proces główny.

Gdy usługa JNDI była wysoce dostępna, proces podrzędny HornetQ mógł zostać wznowiony zgodnie z oczekiwaniami. Czy ktokolwiek mógłby wskazać dokument lub zilustrować w prostych krokach, w jaki sposób możemy przekonwertować naszą istniejącą konfigurację na HA-JNDI? O ile jest to warte, przeczytałem wiele sources, ale nie wydaje się, aby szczegółowo ilustrują, jak zacząć konfigurowanie HA-JNDI. Daj mi znać, jeśli potrzebujesz więcej informacji o naszej obecnej konfiguracji.

Dzięki

+7

Gdzie są Twoi klienci (klienci)? Czy są uruchomione na tych samych wystąpieniach AS lub innej instancji/maszynie JVM, lub obu? – jjhavokk

+2

@jjhavokk będą działać na innym JVM – gravetii

+3

Czy możesz włączyć HornetQ w trybie wysokiej dostępności (aktywna - replikacja pasywna)? Połącz to z dynamicznym wykrywaniem serwera i powinieneś mieć niezawodny mechanizm zastępczy. Zobacz http://docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/ha.html i http://docs.jboss.org/hornetq/2.4.0.Final /docs/user-manual/html/clusters.html – diginoise

Odpowiedz

0

z architekturą opisane wydaje się trudne do mnie, bo rzeczywiście trzeba przekonfigurować niewolnika jako master, a następnie trzeba będzie pewien przestój.

HornetQ HA jest dostarczany za pośrednictwem pary z podglądem na żywo i równoważenie obciążenia jest dostarczane przez klaster.

Jeśli potrzebujesz zarówno HA, jak i równoważenia obciążenia, potrzebujesz 2 zestawionych par połączeń na żywo.

Źródło: https://developer.jboss.org/thread/254232

Można odwołać się do pana nie przez hosta, ale przy użyciu wirtualny adres IP, tak, że w przypadku, gdy mistrz jest w dół, można zmienić konfigurację jednego z niewolników jak pana, i uruchom wirtualny ip, aby nie trzeba było ponownie konfigurować pozostałych urządzeń. (Aby zachować HA, nawet gdy master jest wyłączony, chcesz mieć 2 slaves, abyś mógł zrestartować jeden z nich jako master i nadal będzie działać).

Innym sposobem na osiągnięcie tego samego wyniku jest podanie nazwy hosta DNS specyficznej dla urządzenia głównego, którą można ponownie skonfigurować, aby wskazywała inny adres IP, jeśli jeden host nie działa. Ponieważ DNS jest buforowany, te wpisy powinny znajdować się w pliku "hosts".

Jeśli 3 hosty na domenę HA to zbyt dużo sprzętu, możesz to ułatwić dzięki serwerom wirtualnym bez konieczności zakupu dodatkowego sprzętu.

Powiązane problemy