본문 바로가기

CS

메시징 시스템

728x90
반응형

 

메시징 시스템(Message System)이란 서로 다른 Application 끼리 정보 교환하기 위해 메시지의 생성, 전송, 전달 및 저장을 가능하게 하는 시스템을 말한다.

 

이러한 시스템은 주로 하나의 어플리케이션이 여러 외부 어플리케이션이나 하나 이상의 데이터 소스로부터 데이터를 받는 어플리케이션에 의해 처리된 데이터를 전달받고 싶을 때 사용한다.

 

여기서 메시지하나의 entity에서 다른 하나의 entity로 정보를 전송하는 데 사용되는 통신 아티팩트이다.

대표적인 메시징 시스템으로는 Kafka, RabbitMQ, Active MQ, AWS SQS, Java JMS 등이 있다.

 

메시징 시스템은 고전적인 분산 컴퓨팅 모델에 비해 여러 장점들을 제공한다.

1. 메시지 생산자(Message Producer)와 메시지 소비자(Message Consumers) 사이에 약한 결합성(Loose coupling)을 갖도록 함

  • 약한 결합성 : 한 쪽이 끊기거나 변경이 있어도 다른 쪽에는 미치는 영향이 작은 것을 의미

 

2. 메시징 시스템을 이용할 경우 메시지 생산자와 소비자는 서로를 알지 못한다.

  • 메시지 소비자에게 있어 메시지를 누가 생산했고 생산자가 어디에 있는지 또는 메시자가 언제 생산 되었는지의 여부는 중요하지 않게됨.
  • 이러한 특징 덕분에 동적이고 신뢰성 있고 유연한 시스템을 구현할 수 있게 해줌, 시스템에 나머지 부분에 영향을 주지 않고 하위 어플리케이션의 전체적인 구성을 변경할 수 있게 해줌.

 

3. 높은 확장성과 서로 다른 네트워크 사이의 쉬운 통합성과 안정성

  • 워크플로우, 네트워크 관리, 통신 서비스, 고객 관리, 일기 예보 시스템과 같은 다양한 어플리케이션의 기반

 

 

용어 정리

Message Oriented Middleware(MOM)

  • 독립된 Application 간에 데이터를 주고받을 수 있도록 하는 시스템 디자인
    • 함수 호출, 공유메모리 등의 방식이 아닌, 메시지 교환을 이용하는 중간 계층에 대한 인프라 아키텍처
    • 분산 컴퓨팅이 가능해지며, 서비스간의 결합성이 낮아짐

 

  • 비동기(asynchronous)로 메시지를 전달함
  • Queue, Broadcast, Multicast 등의 방식으로 메시지를 전달
  • Publish/Subscribe(Pub/Sub) 구조
    • 메시지를 발행하는 Publisher, 메시지를 소비하는 Subscriber

 

 

Message Broker

  • 메시지 처리 또는 메시지 수신자에게 메시지를 전달하는 시스템, 일반적으로 MOM을 기반으로 구축

 

 

Message Queue(MQ)

  • Message Broker와 MOM을 구현한 소프트웨어(RabbitMQ, ActiveMQ, Kafka 등)

 

 

Advanced Message Queueing Protocol(AMQP)

  • 메시지를 안정적으로 주고받기 위한 인터넷 프로토콜
  • MOM은 메시지 전송 보장을 해야하므로 AMQP를 구현
  • ex. Kafka -> AMQP를 구현한 MOM 시스템
728x90
반응형