profile image

L o a d i n g . . .

메시지 브로커란?

- 미들 웨어의 유형 중 하나로, 송신자 (Publish) 로부터 전달 받은 메시지를 수신자(Subscriber)로 전달해주는 중간 역할

- 응용 소프트웨어 간에 메시지를 교환할 수 있게 함

// 미들웨어: 어플리케이션과 어플리케이션 사이에서 동작하는 중간 단계 어플리케이션

// 미들웨어를 통해 분산된 모든 어플리케이션 사이에 연결을 맺지 않아도 데이터의 교환 가능

- 메시지가 적재되는 공간을 메시지 큐, 메시지의 그룹을 토픽 이라고 함


메시지 브로커 사용 방법

- DW, AS라는 두 개의 서버가 있다고 가정함

  • DW는 실시간으로 데이터를 수집하고 관리하는 서버
  • AS는 이 데이터를 가공하여 사용하는 서버
  • AS에서 DW에 있는 데이터를 사용하려는데 메시지 브로커를 사용한다면?

- DW 에서 수집한 데이터를 바로 메시지 큐에 적재 (Publish) 하고, AS는 메시지를 소비(Subscribe) 하여 바로 사용하게 됨

- 별도의 조회 과정이 필요 없이, 메시지 큐에 적재되는 메시지를 감시하고 있다가 메시지가 적재되면 바로 가져다가 사용

- 송신자가 보낸 메시지를 메시지 큐에 적재하고, 이를 수신자가 받아서 사용 하는 구조 Publish / Subscriber Pattern


메시지 브로커의 장점

- 메시지 브로커가 메시지를 보관할 수 있으므로, 프로듀서와 컨슈머가 동시에 연결되어 있지 않아도 되는 장점

- 실시간 데이터를 처리할 때 DB에서 조회하는 것보다 메시지 브로커를 이용하여 처리하는 것이 성능이 더 뛰어남


메시지 브로커의 단점

- DB를 사용하는 경우, Query를 이용하여 원하는 데이터만 필터링하여 조회 가능

- 메시지 브로커를 사용하면 Queue 에 적재된 그대로 사용하므로 필터링하여 조회하는 건 불가

- 적재할 때 필터링 된 데이터를 적재하든, 적재된 데이터를 Logstash 를 이용하여 필터링해서 사용해야 함

- 메시지 큐에 적재된 메시지는 주로 7일 보관이므로 장기간 보관 시 별도의 저장소에 저장해야 함


참고

1. https://heodolf.tistory.com/49

복사했습니다!