본문 바로가기
Research/Design pattern

software_Message Broker란

by RIEM 2023. 2. 7.
728x90

메시징 브로커란?

  • 메시징 브로커 플랫폼은 응용 소프트웨어 간 메시지를 교환하는데 중개자 역할을 하는 것입니다
  • Publish/Subscribe Pattern 또는 Producer/Consumer Pattern이라 함
  • 데이터를 일반적으로 7일까지만 보관

Pub/Sub이란?

  • Publisher(발신자)로부터 받은 메시지를 Subscriber(수신자)로 전달해준다

메시징 브로커 플랫폼 유형

  • 메시지 브로커
  • 이벤트 브로커

메시지 브로커

  • 대규모 메시지 기반 미들웨어 아키텍처로 주로 사용
  • 이벤트 브로커 역할 불가 X
  • 처리 후 짧은 시간 내 삭제
  • 예) Redis, RabbitMQ

이벤트 브로커

  • 메시지 브로커 역할 가능 O
  • 메시지 장부를 하나 보관하며 인덱스로 관리
  • 특정 시간동안 이벤트 보존.
  • 예) Apache Kafka, AWS 키네시스

장점

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

단점

  • Query를 사용하여 원하는 데이터만 필터링하여 조회하는 DB와 달리, 메시지 브로커는 적재된 것을 그대로 사용해야 한다

메시지 브로커를 사용할 때 데이터 필터링하고 싶다면?

  • 적재 시 필터링된 데이터를 저장하는 방법
  • 적재된 데이터를 Logstash로 필터링하는 방법

케이스 스터디 : 데이터 수집하는 서버1, 데이터를 가공하는 서버2가 있는 경우

  • 일반적 접근 : 서버1에서 수집한 데이터를 별도 DB에 저장. 서버2에서 DB를 조회하여 데이터 가공. 이 방법은 최신 데이터만 조회하기 힘든 방법.
  • 메시지 브로커 사용하는 방법 : 서버1에서 수집한 데이터를 메시지 큐에 바로 Publish하고, 서버2는 메시지 큐에 있는 메시지를 Subscribeg하여 즉각 사용. 별도 DB를 구축하여 최신 데이터를 조회할 필요가 없이, 메시지 큐에 적재된 데이터를 즉각적으로 가져다 쓰면 된다.

레퍼런스

728x90

'Research > Design pattern' 카테고리의 다른 글

nest.js_MVC 패턴 적용하기  (0) 2023.02.14
아키텍처_MVC 패턴  (0) 2023.02.14
페이지 API 데이터 구조에 대한 고민  (0) 2023.02.14

댓글