type
status
date
slug
summary
tags
category
icon
password

메시지

컴퓨터나 통신망의 관점에서, 하나의 전송 단위로서 엄격한 규칙에 따라 구성되고 송신 장치와 수신 장치 간에 일정한 규칙(프로토콜)에 따라서 전송되는 단위. 하나의 메시지는 하나 또는 복수의 블록으로 이루어진 텍스트, 시작과 끝을 나타내는 문자, 제어 문자, 소프트웨어에 의해 생성되는 헤더(수신지 주소, 메시지형 등) 및 오류 검사 정보 또는 동기(synchronizing) 정보로 구성 - TTA정보통신용어사전

MOM(Message Oriented Middleware)

상이한 애플리케이션 간 통신을 비동기 방식으로 지원하는 메시지 기반 미들웨어.
비동기이지만, 즉각적인 응답을 원하는 경우가 아니라 다소 느리고 안정적인 응답을 필요로 하는 경우에 많이 사용된다더라.
필요한 데이터를 담은 ‘메시지’ 를 한쪽에서 생성(Produce) 하면, 다른 쪽에서 소비(Consume)하는 구조.

생산자(Producer)

API를 호출하여 메시지 중개인에게 메시지를 라우팅하여 전달하고, 메시지를 보낸 후에는 다른 작업을 계속해서 수행한다. 중개인은 소비자가 메시지를 검색할 때까지 메시지를 보관한다.

소비자(Consumer)

전달된 데이터를 수신하고 처리한다.
 
이런 MOM 시스템은 느슨하게 결합한 시스템을 만들어내어, 각각의 주요 로직에만 집중하여 작업을 진행할 수 있다.
또한 중개자에 인터페이스를 추가하여 성능을 모니터링할 수 있으며, 분산처리와 확장성 측면에서도 이점을 가져 MSA(Micro Service Architecture)의 주요 기술로 사용된다.
 

메시지 브로커?

메시지 브로커는 애플리케이션, 시스템 및 서비스가 서로 간에 통신하고 정보를 교환할 수 있도록 해주는 소프트웨어입니다 - IBM
 
메시지 지향 미들웨어 솔루션내의 모듈로, 여러 프로토콜 간 메시지를 변환하여 서로 간 대화 가 이루어 질 수 있도록 도와준다.

메시지 전달 방식

메시지 큐 모델

notion image
큐(Queue) 는 FIFO(선입 선출. First In, First Out)의 자료구조이다.
여러 소비자(sub, consumer)를 사용하면 높은 속도로 일을 처리할 수가 있다. 각각의 소비자는 메시지를 하나씩 전달받고 병렬적으로 작업을 처리하게 된다. 메시지 큐 모델은 메시지의 단일 처리를 보장한다.
 
하지만 여러 시스템과 통신하는 경우 복잡해진다.
 
메시지큐를 요약하면 아래와 같다
  • 비동기
  • 낮은 결합도 → 생산자와 소비자가 독립적으로 행동함으로써 서비스간 결합도가 줄어듦
  • 확장성
  • 탄력적. 1:1 간 수평적 확장 가능
  • 여러 시스템과 통신할 때 복잡해짐
 
메시지큐를 도입한 기술은 아래와 같다
  • Apache ActiveMQ
  • Amazon SQS
  • IBM Websphere MQ
  • RabbitMQ
 

Pub/Sub 모델

notion image
메시지를 생성하는 서비스를 해당 메시지를 처리하는 서비스에서 분리하는 확장 가능한 비동기 메시징 서비스. Publish/Subscribe의 약자.
메시지큐와 같이 비동기 통신이다.
생산자가 Topic에 메시지를 보내면 Topic을 구독한 모든 소비자에게 메시지가 전송된다.
전송된 메시지는 소비자가 이후의 과정을 처리하기 때문에 그동안 생산자는 다른 Topic을 처리할 수 있다는 이점이 있다.
 
Pub/Sub 에서 사용자가 알림을 받고 사라지기까지의 과정이다.
notion image
  1. 게시자/생산자가 Pub/Sub Topic에 메시지를 전송함
  1. 메시지가 저장소에 기록됨
  1. 저장소에 미시지를 기록하는 동시에 Pub/Sub이 모든 연결된 구독자에게 메시지를 전달함 (위의 그림은 단일 구독자에 대한 시나리오임)
  1. 메시지를 소비자/구독자에게 전송
  1. 소비자/구독자가 메시지를 읽었음을 전달하여 저장소에서 해당 메시지를 삭제함
 
Pub/Sub를 요약하면 아래와 같다
  • 비동기 메시징
  • 느슨한 결합(pub 와 sub 간 직접적인 관계가 없음) → 재사용성. 안정성 높음
  • 확장성 → 동시에 여러 채널에 메시지를 발행 및 구독할 수 있음
  • 고가용성 → 메시지큐 대비 규모와 상관없이 안정적 전송을 보장함
  • 대용량 처리에 용이
 
Pub/Sub를 도입한 기술은 아래와 같다
  • Apache Kafka
  • GCP Pub/Sub
 
미들웨어에 대해알림에 대해
Loading...