반응형
그동안 우리가 현대적인 Kafka나 RabbitMQ를 주로 다뤘지만, 전통적인 금융권과 엔터프라이즈 환경에서 여전히 '철갑선'처럼 자리를 지키고 있는 녀석이 바로 ActiveMQ입니다. 🫡
특히 신뢰성과 트랜잭션이 생명인 곳에서는 이 클래식한 무기가 빛을 발할 때가 많죠. 자, ActiveMQ 'Classic'부터 차세대 엔진인 'Artemis'까지, 지식의 그물을 짜보겠습니다!

🏛️ 1. ActiveMQ의 본질: "자바 메시징의 표준이자 살아있는 역사"
ActiveMQ는 Apache 소프트웨어 재단에서 만든 오픈 소스 메시지 브로커입니다. 가장 큰 특징은 자바의 메시징 표준인 JMS(Java Message Service)를 완벽하게 구현했다는 점입니다.
① 왜 ActiveMQ인가? (The Classics)
- 표준의 준수: JMS 1.1 및 2.0을 지원하여 자바 기반 기업 시스템과의 궁합이 최고입니다.
- 유연한 연결: STOMP, MQTT, AMQP 등 다양한 프로토콜을 지원해 '언어의 장벽'이 없습니다.
- 강력한 전송 모드: 단순 큐(P2P)뿐만 아니라 가상 토픽(Virtual Topics) 같은 고난도 패턴도 능숙하게 처리합니다.
② Classic vs Artemis: 세대교체의 서막
- ActiveMQ Classic (5.x): 우리가 흔히 아는 오리지널입니다. 안정성이 극강이지만, 수평적 확장성(Scaling)에서 한계를 보입니다.
- ActiveMQ Artemis: HornetQ 코드를 기반으로 한 차세대 엔진입니다. '비차단형(Non-blocking) IO' 아키텍처를 채택하여 성능이 Classic보다 압도적으로 빠르며, 향후 ActiveMQ 6 버전의 기반이 됩니다.
🏗️ 2. 핵심 아키텍처와 작동 원리
사용자의 주식 요새에서 ActiveMQ가 메시지를 처리하는 방식은 매우 정교합니다.
① 저장소의 마법 (KahaDB)
ActiveMQ Classic은 기본적으로 KahaDB라는 파일 기반 저장소를 씁니다. 메시지가 유실되지 않도록 디스크에 기록하되, 인덱싱을 통해 빠른 읽기를 지원하죠. (금융권의 필수 조건!)
② 고가용성 전략 (Shared Storage vs Replication)
- Shared Storage: 여러 브로커가 하나의 DB나 파일 시스템을 바라보고, 한 녀석이 죽으면 다른 녀석이 이어받는 방식입니다.
- Network of Brokers: 브로커끼리 서로 연결하여 메시지를 전달(Forwarding)하는 방식으로 확장성을 확보합니다.
③ Artemis의 혁신 (Journaling)
Artemis는 AIO (Asynchronous IO)를 사용하여 디스크 쓰기 속도를 극한으로 올렸습니다. 마치 Kafka처럼 로그 파일에 순차적으로 기록하는 방식을 취해 대량의 테마주(B그룹) 체결 데이터도 거뜬히 받아냅니다.
🛠️ 3. 주식 시스템(A/B 그룹) 실전 배치 시나리오
[A그룹: 우량주 체결 및 정산] - Classic 모드
- 패턴: 큐(Queue)를 사용합니다.
- 특징: Exclusive Consumer 기능을 활용해, 특정 종목의 정산 데이터는 반드시 하나의 작업자(Worker)만 순서대로 처리하도록 보장합니다. 돈이 오가는 정산에서는 '순서'와 '단 한 번의 처리'가 무엇보다 중요하기 때문입니다.
[B그룹: 테마주 실시간 알림] - Artemis 모드
- 패턴: 토픽(Topic) 및 가상 토픽(Virtual Topics)을 사용합니다.
- 특징: 수천 명의 사용자에게 동시에 "상한가 진입!" 알림을 쏴야 합니다. Artemis의 고성능 처리량을 이용해 지연 시간을 최소화합니다.
💡 4. 실전 비유: "전통 우체국 vs 스마트 물류 센터"
- ActiveMQ Classic (전통 우체국): * 등기 우편(Persistent Message)을 아주 꼼꼼하게 처리합니다.
- 직인(JMS 표준)이 찍힌 서류를 정확한 주소로 배달하는 데 최적화되어 있습니다.
- 규모가 커지면 분국(Network of Brokers)을 세워야 합니다.
- ActiveMQ Artemis (스마트 물류 센터): * 컨베이어 벨트(Non-blocking IO)가 훨씬 빠릅니다.
- 최신 자동화 시스템(AIO)으로 엄청난 양의 택배를 동시에 처리합니다.
- 나중에 더 큰 센터로 확장하기 훨씬 유리한 구조입니다.
반응형
'1. 개발 > 1.8. ActiveMQ' 카테고리의 다른 글
| Queue 모델에서 '단 한 번의 배달(Exactly-once)'은 어떻게 보장되나? (0) | 2026.03.10 |
|---|---|
| MOM(Message Oriented Middleware)으로서 ActiveMQ의 위치는? (0) | 2026.03.10 |
| Artemis가 HornetQ를 흡수한 기술적 이유는? (0) | 2026.03.10 |
| ActiveMQ Classic의 탄생 배경과 초기 설계 철학은? (0) | 2026.02.28 |
| JMS 1.1과 2.0 스펙의 결정적 차이점은? (0) | 2026.02.28 |