38일차 TIL: MOM(메시지 지향 미들웨어)
2024. 5. 11. 13:54ㆍ개발 공부
728x90
반응형
#1. 오늘의 학습 키워드
MOM에 대해
- 비동기 기반의 i/o 방식을 제공하는 Spring WebFlux 에 대해서 알아봤었다.
- 또 다른 비동기 방식을 사용하는 통신 유형으로는 메시지 브로커가 떠오른다.
- 메시지 브로커로 RabbitMQ, Kafka 등 익히 들어본 기술이 떠오른다.
- 메시지 브로커에 대해서 알아보기 전에, 우선 메시지 지향 미들웨어 (MoM) 에 대해서 알아보자
#2. 공부한 내용
1. MOM
- 메시지를 통해 앱들을 연결해 서로 간 데이터 교환을 가능케 하는 미들웨어
- Message Oriented Middleware
- 메시지 지향 미들웨어
- 메시지 기반의 비동기형 메시지를 전달하는 방식의 미들웨어
- 미들웨어이기에 중간에서 관리해주는 시스템이다.
- 메시지 전달 방식은 Queue, Broadcast, Multicast 등이 있다.
- MOM 은 크게 두가지로 구성된다.
- Publisher
- 메시지 발행하는 주체
- 즉 메시지 전송 측
- Subscriber
- 메시지를 소비하는 주체
- 즉 메시지 수신 측
- Publisher
1) 장점
- 비동기 통신 지원
- 시스템 간의 결합도를 낮춰서, 느슨한 결합을 유지
- 신뢰성
- 메시지 큐를 통해 메시지를 안전하게 보관 및 전달.
- 즉 메시지의 유실을 방지
- 확장성
- 분산 환경에서 확장 가능한 아키텍처를 제공
- 대규모 트래칙 처리 가능
- 유연성
- 다양한 프로토콜 및 메시지 형식 지원
2) 단점
- 복잡성 ( 학습곡선 )
- 메시지 큐, 브로커 설정, 메시지 전송 및 수신에 대한 로직을 구현해야 됨
- 설치 및 관리 비용
- MOM을 위한 별도의 인프라 및 유지보수 비용이 발생한다.
- 성능
- 메시지 전송, 수신 간 지연 시간이 발생할 수 있다.
3) WebFlux 와 비교
- Spring WebFlux 는 웹 애플리케이션 서버 자체가 비동기 방식으로 작동하도록 지원을 한다면, MOM 은 어플리케이션 간의 데이터 교환을 비동기 방식으로 지원한다는 것에서 차이가 있다.
- 따라서 같은 비동기 방식의 통신을 지원하는 것이더라도, 기능이 전혀 다르다는 것을 알 수 있다.
- 즉, MOM 은 메시지 전송과 수신에 대한 구현을 모두 해야 한다.
- 반면 Spring Webflux 는 비동기형 웹 서버 개발을 지원하므로, 요청에 대한 처리하는 측만 구현하면 된다.
#3. 오늘의 회고
- 정리:
- MOM 은 메시지 지향 미들웨어로서, 어플리케이션 간에 메시지를 안전하게 교환할 수 있도록 지원하는 기술이다.
- 유연성과 신뢰성이 높고, 비동기 방식을 통해 분산 시스템 간 결합성을 낮춘다.
- 다만 구현 시, 메시지 큐 구조 및 메시지 전송, 수신 측 로직을 고려해야 돼서 복잡하다.
- 분산시스템인 MSA 구조에서 MOM 은 유용히 쓰일 수 있는 소프트웨어로 보여진다.
- MOM 은 메시지 지향 미들웨어로서, 어플리케이션 간에 메시지를 안전하게 교환할 수 있도록 지원하는 기술이다.
728x90
반응형
'개발 공부' 카테고리의 다른 글
37일차 TIL: 디자인 패턴 (0) | 2024.05.10 |
---|---|
99클럽 36일차 TIL: jenkins (1) | 2024.05.09 |
99클럽 35일차 TIL: DevOps (0) | 2024.05.08 |
99클럽 34일차 TIL: 개발 방법론 - Agile (0) | 2024.05.07 |
99클럽 33일차 TIL: 클라이언트 사이드 캐시 (1) | 2024.05.06 |