320x100
320x100

메시지 브로커 (Message Broker)

- Publisher (송신자)로부터 전달받은 메시지를 Subscriber(수신자)로 전달해주는 역할

 : 응용소프트웨어 간의 메시지 교환

 

- 관련개념

 ㆍMessage Queue : 메시지 교환을 위해 메시지가 적재되는 공간

 ㆍTopic : 메시지의 그룹

 

- 사용예시

 ㆍDW : 실시간으로 데이터를 수집하고 관리하는 서버 <데이터베이스 서버>

 ㆍAS : 이 데이터를 가공하여 사용하는 서버 <데이터베이스를 조회하여 사용하는 서버>

  => DW에서 수집한 데이터를 바로 메시지큐에 Publish(적재)하고

       AS는 메시지를 Subscribe(소비)하여 바로 사용하게 됨.

       메시지 브로커를 활용하면 별도의 조회과적이 필요없이 

       메시지 큐에 적재되는 메시지를 감시하고 있다가 메시지가 적재되면 바로 사용할 수 있음

 

- 메시지 브로커의 종류

 ㆍApache Kafka

 ㆍRabbit MQ

 ㆍRedis <NoSQL DBMS이나, 이를 이용하여 메시지 큐를 생성 가능>

 ㆍCelery <메시지 전달에 기반을 둔 오픈소스 비동기 태스크 큐>

 

 

 

 

 

Apache Kafka

- publish-subscribe 모델을 기반으로 동작하는 분산 메시징 시스템

 : producer, consumer, broker로 구성 

 

- 구성

 ㆍbroker : topic을 기준으로 메시지를 관리

 ㆍproducer : 특정 topic의 메시지를 생성한뒤 해당 메시지를 broker에 전달

 ㆍconsumer : 메시지 큐에 쌓인 메시지를 가져가 처리

 

- 특징

 : 확장성과 고가용성을 위해 broker들이 클러스터로 구성되어 동장

 : broker에 대한 분산처리는 ApacheZooKeeper가 담당

 : Rabbit MQ와 같은 기존 메시징 시스템 보다 더 높은 성능

 

 

 

 

Rabbit MQ

- AMQP를 따르는 오픈소스 메시지 브로커

 : 메시지를 많은 사용자에게 전달하거나 요청에 대한 처리시간이 길때 

   해당 요청을 다른 API에게 위임하고 빠른 응답 가능

 : MQ를 이용하여 애플리케이션간 결합도 감소 가능

 : Producer, Consumer, Queue, Exchange, Binding으로 구성

 

- 구성

 ㆍProducer : 메시지를 생성하고 발송하는 주체

 ㆍExchange : Producer의 메시지를 Queue로 저장해주는 개체

 ㆍQueue : 메시지를 저장하는 공간

 ㆍConsumer : Queue에 직접 접근하여 메시지를 사용하는 개체

 ㆍBinding : Exchange에게 메시지를 라우팅할 규칙을 지정하는 행위

 

 

 

 

 

 

Refference

heodolf.tistory.com/49

epicdevs.com/17

blog.dudaji.com/general/2020/05/25/rabbitmq.html

 

 

 

 

 

 

 

300x250
728x90