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
      • 메시지를 소비하는 주체
      • 즉 메시지 수신 측

1) 장점

  • 비동기 통신 지원
    • 시스템 간의 결합도를 낮춰서, 느슨한 결합을 유지
  • 신뢰성
    • 메시지 큐를 통해 메시지를 안전하게 보관 및 전달.
    • 즉 메시지의 유실을 방지
  • 확장성
    • 분산 환경에서 확장 가능한 아키텍처를 제공
    • 대규모 트래칙 처리 가능
  • 유연성
    • 다양한 프로토콜 및 메시지 형식 지원

2) 단점

  • 복잡성 ( 학습곡선 )
    • 메시지 큐, 브로커 설정, 메시지 전송 및 수신에 대한 로직을 구현해야 됨
  • 설치 및 관리 비용
    • MOM을 위한 별도의 인프라 및 유지보수 비용이 발생한다.
  • 성능
    • 메시지 전송, 수신 간 지연 시간이 발생할 수 있다.

3) WebFlux 와 비교

  • Spring WebFlux 는 웹 애플리케이션 서버 자체가 비동기 방식으로 작동하도록 지원을 한다면, MOM 은 어플리케이션 간의 데이터 교환을 비동기 방식으로 지원한다는 것에서 차이가 있다.
    • 따라서 같은 비동기 방식의 통신을 지원하는 것이더라도, 기능이 전혀 다르다는 것을 알 수 있다.
  • 즉, MOM 은 메시지 전송과 수신에 대한 구현을 모두 해야 한다.
    • 반면 Spring Webflux 는 비동기형 웹 서버 개발을 지원하므로, 요청에 대한 처리하는 측만 구현하면 된다.


#3. 오늘의 회고

  • 정리:
    • MOM 은 메시지 지향 미들웨어로서, 어플리케이션 간에 메시지를 안전하게 교환할 수 있도록 지원하는 기술이다.
      • 유연성과 신뢰성이 높고, 비동기 방식을 통해 분산 시스템 간 결합성을 낮춘다.
      • 다만 구현 시, 메시지 큐 구조 및 메시지 전송, 수신 측 로직을 고려해야 돼서 복잡하다.
    • 분산시스템인 MSA 구조에서 MOM 은 유용히 쓰일 수 있는 소프트웨어로 보여진다.
728x90
반응형