메세지 브로커 (message broker) 란?
- 안정적인 비동기 방식으로 메세지를 교환하여 분산된 시스템 혹은 애플리케이션 간의 통신을 돕는다.
- 생산자와 소비자간 중개자 역할을 하여 두 시스템이 완전히 독립적으로 작동할 수 있도록 돕는다.
- 컴포넌트간 느슨한 결합 (loose coupling) 을 돕는다.
- 이 구조는 확장성을 증대시켜주고 장애가 미치는 여파를 줄일 수 있습니다.
- 메세지 큐, 토픽과 같은 데이터구조를 통해 메세지를 임시로 저장해두었다가 적절한 수신자에게 보내줍니다.
핵심 기능
- 비동기 커뮤니케이션
- 디커플링
- 메세지 라우팅 및 필터링
- 영속성과 신뢰성
- 스케일링
- 로드밸런싱과 장애 내성
비동기 커뮤니케이션 (Asynchronous communication)
- 시스템이 비동기로 소통할 수 있도록 돕는다.
- 송신자와 수신자가 서로의 응답 메세지를 기다릴 필요 없이 서로 독립적으로 운영될 수 있도록 돕는다.
디커플링 (Decoupling)
- 컴포넌트를 분리시켜 독립적으로 컴포넌트들이 진화할 수 있도록 돕는다.
- 독립된 시스템은 유지보수의 복잡성이 낮아지게 만들 수 있다.
메세지 라우팅 및 필터링 (Message routing and filtering)
- 라우팅 룰, 패턴, 메세지 프로퍼티 등을 제공하여 적절하게 메세지를 라우팅할 수 있다.
- 라우팅을 통해 필터링된 특정 소비자에게 메세지를 가도록 설정할 수 있다.
영속성과 신뢰성 (Persistence and Reliability)
- 시스템 장애 시에도 메세지 브로커는 자신이 받았던 메세지를 보관한다.
- 다양한 QoS(Quality of Service) 를 제공하여, 적어도 한번, 정확히 한번 등의 옵션을 제공한다.
스케일링 (Scalability)
- 수평적 스케일링이 가능하여 많은 양의 메세지 부하를 처리할 수 있다.
로드밸런싱과 장애 내성 (Load balancing and fault ttolerance)
- 소비자들에게 균일하게 메세지를 나눠주어 부하의 균형을 유지할 수 있다.
- 소비자가 메세지를 받는 것에 실패한 경우에 인지가 가능하고, 다른 대체 소비자에게 메세지를 보내는 것도 가능하다.
잘 사용되는 메세지 브로커 제품들
- RabbitMQ
- Apache Kafka
- Amazone Simple Queue Service (SQS)
- Google Cloud Pub/Sub
반응형
'인프라 > 용어' 카테고리의 다른 글
publish-subscribe pattern (pub sub pattern, 발행자 구독자 패턴) 이란? (0) | 2023.04.08 |
---|---|
AOF (Append Only File) 란? (0) | 2023.04.08 |
Binary Safe (바이너리 안전, 이진 안전) 문자열이란? (0) | 2023.04.08 |
CDN (Content Delivery Network) 이란? (0) | 2023.03.29 |
L2 스위치란? (0) | 2022.09.04 |