[오늘의 배움] 메시지 브로커란?

이상민·2022년 1월 17일
1

[오늘의 배움]

목록 보기
66/70
post-thumbnail

스프링에서 웹소켓으로 채팅 기능을 테스트 해보던 중 AbstractWebSocketMessageBrokerConfigurer를 상속해 설정하면서 메시지 브로커가 무엇인지 궁금해 찾아봤다.

미들웨어

미들웨어란 어플리케이션과 어플리케이션 사이에서 동작하는 중간 단계 어플리케이션이다. 미들웨어를 통해 분산된 모든 어플리케이션사이에 연결을 맺지 않아도 데이터의 교환이 가능하다. 만약 미들웨어가 없다면, 아래 그림처럼 어플리케이션끼리 연결을 해줘야한다. 어플리케이션이 n개라면 n-1 + n-2 + ... + 1개의 수많은 연결이 필요해진다.

메시지 브로커

메시지 브로커는 미들웨어의 유형 중 하나이다. 메시지를 브로커에 전달하는 어플리케이션을 프로듀서, 메시지를 받는 어플리케이션을 컨슈머라고 한다. 메시지 브로커가 메시지를 보관할 수 있으므로 프로듀서와 컨슈머가 동시에 연결되어 있지 않아도 되는 장점도 가진다. 메시지 브로커를 흔히 메시지 큐라고도 한다. RabbitMQ와 Kafka가 대표적인 메시지 브로커다.

메시지 모델

브로커를 통해 프로듀서의 메시지를 컨슈머에게 전달하는 방법은 크게 2가지가 있다. 첫번째는 퍼블리셔-서브스크라이버 방식으로 퍼블리셔의 메시지 하나가 여러 서브스크라이버에게 전달되는 모델이다. 또 다른 모델은 포인트-투-포인트로 프로듀서의 메시지는 하나의 컨슈머에 의해서만 소비된다.

참고

https://www.youtube.com/watch?v=wA259esVY4A

profile
편하게 읽기 좋은 단위의 포스트를 추구하는 개발자입니다

0개의 댓글