22

HornetQ(JMS) 클러스터링에서 메시지 순서보장

Embed Size (px)

DESCRIPTION

http://www.opennaru.com/ http://opennaru.tistory.com JBoss EAP 6에서 JMS(Java Messaging Service)로 사용하고 있는 HornetQ에 대해서 살펴봅니다. JMS의 주요기능과 특징에 대해서 정리하였고, HornetQ가 제공하는 클러스터링 방식에 대해서 설명합니다. JMS(Java Messaging Service)에서 메시지를 보낸 순서대로 받을 수 있을까요? 특히 HornetQ 인스턴스를 여러 개 구성하여 클러스터링으로 사용중인데, 메시지 순서를 보장받을 수 있을까요? 엔터프라이즈 시스템에서는 일반적으로 MQ(Message Queue) 혹은 MOM(Message Oriented Middleware)라고 부르는 비동기 메시징 시스템을 사용하여 여러 시스템 간에 메시지를 전송하여 처리하는 메시지 교환 시스템을 구현해 왔습니다. JMS는 Java 애플리케이션에서 이런 메시징 시스템을 구현하기 위한 표준이며, Java EE에도 초기부터 포함된 비교적 오랜 시간동안 발전해 온 표준입니다. JMS를 사용하면 Java EE환경에서 간단하게 비동기 메시지 처리를 구현할 수 있습니다. 비동기 메시징을 사용하면 시스템 성능 향상, 자원 효율화, 처리 순서지정 등 여러 가지 장점이 있습니다. HornetQ(http://hornetq.jboss.org/)는 JBoss EAP 6.x에서 JMS를 담당하는 오픈소스 프로젝트입니다. 다음과 같은 특징이 있습니다. Java로 구현된 오픈소스 소프트웨어 – Apache v 2.0 라이선스 성능을 우선으로 생각한 설계 및 구현 HA(High Availability) Automatic Fast Client Failover Shared File System을 이용한 Failover 클러스터링 지원(Load Balancing) JCA Adaptor 지원 JTA(XA) 트랜잭션 지원 JMS Bridge 지원 Message Grouping(Cluster내에 메시지 순차 전송) Linux AIO를 사용한 고성능 메시지 저장 다양한 Transport System 지원(Netty, TCP, SSL, HTTP, Servlet, In-VM) JMX API Huge Message 지원(수십 기가 바이트 메시지 전달 가능) STOMP, REST 지원 HornetQ는 오픈소스 프로젝트 중에서는 드물게 SPEC jms2007에도 성능측정 결과를 발표하고 있습니다. (http://www.spec.org/jms2007/results/). JBoss EAP 6의 HornetQ는 여러가지 방식으로 메시지를 분산할 수 있지만, 다음 두가지 방식의 클러스터링이 주로 사용됩니다. 첫번째는, 두 서버의 HornetQ를 모두 사용하는 Active - Active 방식의 클러스터링 방식입니다. 다른 방식은, 한 서버의 HornetQ만 사용하고, 장애시에 Backup 서버가 Live되어 메시지를 처리하는 클러스터링 방식입니다. 이 경우 공유 파일시스템이 필요합니다.

Citation preview

Page 1: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 2: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 3: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 4: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 5: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 6: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 7: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 8: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 9: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 10: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 11: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 12: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 13: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 14: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 15: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 16: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 17: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 18: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 19: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 20: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 21: HornetQ(JMS) 클러스터링에서 메시지 순서보장
Page 22: HornetQ(JMS) 클러스터링에서 메시지 순서보장