[Spring in Action] 비동기 메시지, 메시지 시스템, AMQP

728x90
반응형
SMALL

Spring in Action (5판)

  • 스프링 5의 강력한 기능과 생산성을 활용한 웹 애플리케이션 개발
  • Walls, Craig 지음
  • 제어펍 출판사
  • 2020.05.14

 

스프링 인 액션 개인 스터디 내용을 정리하자.

 

 

 

 


Message System

Application 간 Message를 주고받는 Communiation Mechanism

ex) RabbitMQ, Kafka

hoooon-s.tistory.com/65

 

RabbitMQ - AMQP를 따르는 오픈소스 Message Broker

RabbitMQ AMQP를 따르는 오픈소스 Message Broker 사용 Gradle implementation 'org.springframework.boot:spring-boot-starter-amqp' Consumer spring-boot-starter-amqp에서 기본적인 커넥션을 연동해주기 때문..

hoooon-s.tistory.com

hoooon-s.tistory.com/8

 

[Kafka] 아파치 카프카 (Apache Kafka)란?

Apache Kafka (A high-throughput distributed message system) 메시지 큐의 일종이다. 메시지 지향 미들웨어(Message Oriented Middleware : MOM)는 비동기 메시지를 사용하는 다른 응용 프로그램 사이의 데이터..

hoooon-s.tistory.com

 

AMQP

Advanced Message Queuing Protocol로, MOM(Message Oriented Middleware) 구현을 위한 표준 프로토콜이다.

Component

  • Exchange
    Publisher로부터 수신한 Messge를 적절한 Queue 또는 다른 Exchange로 분배하는 라우터 기능을 담당
    각 Queue나 Exchange는 Binding을 사용해서 Exchagne에 바인드 되어 있고, Exchange는 수신한 Message를 Binding에 따라 라우팅 시킨다.
  • Queue
    Message를 저장하고, Consumer에게 전달하는 역할
  • Binding
    Exchange와 Queue의 관계를 정의한 일종의 라우팅 테이블
  • Routing Key
    Message Header에 포함되는 일종의 가상 주소
    Exchange는 이것을 이용해서 어떤 Queue로 라우팅 할지 결정한다.
  • Exchange Type
    Default / Direct / Topic / Fanout / Header / Dead Letter 등 다양한 Exchange Type 존재

동작

Message Publisher는 Exchange에 Message를 보낸다.

 

이때, Publisher는 Exchange Queue에 연결되어 있는 Message를 수신하는 쪽을 모른다.

 

Exchange는 Routing Key를 사용하여 관련 하나 또는 그 이상의 Queue에 Message를 보낸다.

 

Consumer는 Queue에 연결되어 메시지를 수신하게 된다.

즉, Publisher가 Routing Key 1번으로 Message를 보냈다면, Queue1에 라우트 되고, Consumer1에 전달된다.

Rout Key 2번일 땐 동일한 방식으로 Queue2, Consumer2에 전달된다.

 

Message는 Routing Key를 갖고 Exchange (거래소)로 전달되고 Queue에서 읽혀서 소비된다.

Message는 바인딩 정의를 기반으로 Exchagne에서 Queue로 전달된다.

728x90
반응형
LIST