메시지 브로커 (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
blog.dudaji.com/general/2020/05/25/rabbitmq.html
'Development > Development' 카테고리의 다른 글
[백엔드 개발자 로드맵 2020] DNS (Domain Name Service) (0) | 2021.04.02 |
---|---|
[백엔드 개발자 로드맵 2020] GraphQL (GQL) (0) | 2021.03.18 |
[백엔드 개발자 로드맵 2020] 검색 엔진 <Elastic Search / Solr> (0) | 2021.03.17 |
[백엔드 개발자 로드맵 2020] 백엔드 서비스 아키텍처 패턴 (0) | 2021.03.17 |
[백엔드 개발자 로드맵 2020] 웹 보안 지식 (0) | 2021.03.17 |