기존 JNDI HornetQ 서비스를 HA로 만드는 단계는 무엇입니까?


177

TL; DR

HornetQ 설정으로 HA-JNDI 서비스를 구성하는 단계는 무엇입니까? 문서가 약간 흩어져 있다고 생각합니다. 나는 여기 에서 문서를 읽었 지만 자세히 설명하지는 않습니다.

더 긴 버전 :

JNDI와 함께 HornetQ JMS 설정이 있습니다. 각 서버에서 JNDI 서비스를 사용하여 HornetQ JMS 마스터 인스턴스를 실행하는 5 대의 서버가 있습니다. 이 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가 다운되면 서비스가 A의 HornetQ 슬레이브를 호스트하는 서버 E에서 실행되는 HornetQ로 대체되는 것이 이상적입니다. 그러나 HornetQ 마스터로 재개하려면 HornetQa_slave가 서버 A에서 실행중인 JNDI 프로세스와 통신해야합니다 (메시지를 복제한다고 가정). 호스트 A 자체가 다운되었으므로 E에서 실행중인 HornetQa_slave는 A의 JNDI와 통신 할 방법이 없으므로 마스터 프로세스로 재개 할 수 없습니다.

JNDI 서비스의 가용성이 높으면 슬레이브 HornetQ 프로세스가 예상대로 마스터로 재개 될 수 있습니다. 누구나 기존 문서를 HA-JNDI로 변환하는 방법에 대해 문서를 가리 키거나 간단한 단계로 설명 할 수 있습니까? 그 가치에 대해서는 여러 소스를 읽었 지만 HA-JNDI 구성을 시작하는 방법에 대해서는 자세히 설명하지 않는 것 같습니다. 현재 설정에 대한 자세한 정보가 필요하면 알려주십시오.


8
클라이언트가 어디에서 실행되고 있습니까? 동일한 AS 인스턴스 또는 다른 인스턴스 / JVM 또는 둘 다에서 실행됩니까?
jjhavokk

3
@jjhavokk 그들은 다른 JVM에서 실행됩니다
gravetii

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를 실행하고 있습니까?
es

5
나는 이것이 정말로 오래되었다는 것을 알지만, 당신이 답을 찾았는지 궁금합니다. 이제 HA는 메시지를 전달하기 위해 <forward-when-no-consumers> true </ forward-when-no-consumers>가 필요하지만 마스터에 대한 장애 복구는 작동하지 않음을 알고있을 것입니다. weblogic 및 websphere에서 페일 백이 작동하지만 jboss가 아닌 동일한 구성을 사용했습니다. 마스터가 누락 된 메시지를 동기화하고 업데이트하여 적절한 페일 백이 작동하도록 설정할 수있는 것이 있습니까?
user1442498

답변:


1

설명 된 아키텍처를 사용하면 실제로 슬레이브를 마스터로 재구성해야하며 특정 중단이 발생하기 때문에 어려운 것으로 보입니다.

HornetQ HA는 라이브 백업 쌍을 통해 제공되며로드 밸런싱은 클러스터를 통해 제공됩니다.

HA와로드 밸런싱을 모두 원한다면 함께 클러스터 된 2 개의 라이브 백업 쌍이 필요합니다.

출처 : https://developer.jboss.org/thread/254232

호스트 이름이 아닌 가상 IP 주소를 사용하여 마스터를 참조 할 수 있으므로 마스터가 다운 된 경우 슬레이브 중 하나를 마스터로 재구성하고 가상 IP를 시작하여 나머지를 다시 구성 할 필요가 없습니다. 노예의. (마스터가 다운 된 경우에도 HA를 유지하려면 슬레이브 2 개가 필요하므로 슬레이브 중 하나를 마스터로 다시 시작할 수 있으며 여전히 하나가 실행됩니다).

동일한 결과를 얻는 또 다른 방법은 한 호스트가 다운 된 경우 다른 IP를 가리 키도록 재구성 할 수있는 마스터 전용 DNS 호스트 이름을 사용하는 것입니다. DNS는 캐시되므로이 항목은 '호스트'파일에 있어야합니다.

HA 도메인 당 3 개의 호스트가 너무 많은 하드웨어 인 경우 더 많은 하드웨어를 구입할 필요없이 가상 서버를 사용하여이 작업을보다 쉽게 ​​수행 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.