본문 바로가기
개발 공부

[메시지 큐] feat. RedHat AMQ, IBM MQ(WMQ)

by 도됐좋 2023. 5. 12.
순서
1. 동기식 통신
2. 비동기식 통신
3. 메시지 큐
4. RedHat AMQ와 IBM MQ(WMQ) 소개
5. AMQ와 WMQ비교

✅ 동기식 통신이란?

- 아래 그림과 같이 요청을 보냈을 때, 응답이 온 뒤에, 다음 동작을 수행하는 통신 방법

- 장점 : 순서 보장, 처리 결과 보장

- 단점 : 응답이 지연되면 무한 대기상태 가능
             하나의 요청만 지연되면 전체 성능 이슈 발생 


✅ 비동기식 통신이란?

- 아래 그림과 같이 요청을 보냈을 때, 응답을 기다리지 않고 바로 다음 동작을 수행하는 통신 방법

- 장점 : 성능 효율이 좋음

- 단점 : 순서와 응답을 보장하지 않음

비동기식 통신으로 데이터를 주고 받는 시스템 중의 하나가 바로 "메시지 큐"


✅ 메시지 큐

- 비동기 메시지를 이용하여 중간에서 여러 시스템과 서비스들을 연결해주는 저장소 역할

- 다중화 구성을 통해 안정성 확보 가능

- 메시지 지향 미들웨어(MOM)를 구현한 시스템

- ActiveMQ, RabbitMQ, Kafla 등 다양한 종류 존재

 

MOM(Message Oriented Middleware)

- 메시지 큐를 기반으로 비동기 메시지를 사용하는 응용 프로그램들 간의 통신을 위한 소프트웨어

- 자바에서 지원하는 MOM API의 표준을 JMS(Java Message Service)라 함

 

메시지 큐 사용의 장점

1. 비동기 : 나중에 응답 가능

2. 낮은 결합도 : 서비스 간 결합도가 낮아짐

3. 확장성 : 서비스 확장성이 좋음

4. 탄력성 : 한쪽 서비스가 다운되도 메시지는 메시지 큐에 남아 있음

5. 보장성 : 큐에 보관된 모든 메시지가 나중에라도 응답된다는 일반적인 보장 제공

등등


//뜬금없지만 회사에서 사용해야 하니 공부 겸..

RedHat AMQ와 IBM MQ 소개 및 비교

- 자세한 블로그 글을 찾지 못해서 공식 사이트를 참조하였습니다.

https://access.redhat.com/documentation/en-us/red_hat_amq/7.5/html/introducing_red_hat_amq_7/about

https://www.ibm.com/docs/ko/ibm-mq/8.0?topic=overview-introduction-mq

 

RedHat AMQ

- RedHat이라는 기업에서 만든 MQ 제품

- 특징

  1. 인터넷 규모의 메시징 : 고급 멀티데이터 메시징 네트워크를 구축하는 도구가 포함됨

  2. 최고 수준의 보안 및 성능 : 최신 SSL/TLS 암호화 및 확장 가능한 SASL 인증 제공

  3. 광범위한 플랫폼 및 언어 지원 : C++, Java, JavaScript, Python 및 .NET 애플리케이션과

                                                        Linux, Windows 및 JVM 기반 환경을 지원

  4. 표준에 집중 : ISO 표준 AMQP 1.0 및 MQTT 메시징 프로토콜과 STOMP 및 WebSocket을 지원하는

                           Java JMS 1.1 및 2.0 API 사양을 구현

  5. 중앙 집중식 관리 : 단일 관리 인터페이스에서 모든 AMQ 구성 요소를 관리 가능

 

 IBM MQ

- IBM이라는 기업에서 만든 MQ 제품

- 특징

  1. 메인프레임에서 모바일로 동적 이기종 환경에 대한 강력한 단일 메시징 백본을 제공하는 강력한 메시지 통합

  2. 감사 가능한 결과를 생성하는 보안이 우수한 기능으로 메시지 전달

  3. 개선된 속도와 안정성으로 데이터를 전달하기 위한 고성능 메시지 전송

  4. 메시징 관리를 간소화하고 복잡한 도구를 사용할 때 소모되는 시간을 줄이는 관리 기능

  5. 확장성과 비즈니스 성장을 지원하는 개방형 표준 개발 도구


AMQ와 WMQ 비교

AMQ WMQ
- Java 언어로 작성된 오픈 소스
  다중 프로토콜 지원 메시지 브로커
**최신 버전의 RedHat AMQ 같은 경우,
   단순한 메시지 브로커는 아님

- 메시지 브로커는
  발신자의 메시지를
  공식 메시지 프로토콜 → 수신자 공식 메시지 프로토콜
  로 변환하는 프로그램 모듈

- 애플리케이션이 다른 컴퓨팅 환경에서
  통신할 수 있도록 하는 메시지 지향 미들웨어


- 메시지 지향 미들웨어는
  분산 시스템 간 메시지를 송수신하는
  소프트웨어 또는 하드웨어 인프라