연재 시리즈

쿠버네티스 오퍼레이터 스터디 3주차 - 메세지/이벤트 브로커란

악분 2022. 6. 6. 15:03
반응형

3주차에는 kafka operator를 공부했습니다. 그러므로 kafka에 어떤 소프트웨어인지 먼저 공부했고 이 글에 간단히 정리하려고 합니다.

 

메세지 브로커란?

이벤트 브로커를 살펴보기 전에 메세지 브로커부터 무엇인지 살펴보겠습니다. 메세지 브로커는 Producer(생산자)/Consumer(소비자)패턴을 구현한 미들웨어입니다.

  • 공유할 데이터: 메세지
  • 데이터 공유하는 주체: producer(생산자)
  • 데이터를 공유받는 주체: consumer(소비자)

 

producer/consumer 패턴의 대표적인 예가 운영체제 IPC통신입니다. 운영체제 커널은 프로세스간 통신을 위해 여러가지 방법을 제공하는데요. 메세지기반 공유가 그 방법 중 한개이고, 커널은 공유할 데이터를 메모리에 설정하여 데이터 공유를 책임집니다. 

 

메세지 브로커는 서로 다른 시스템 또는 소프트웨어간 데이터를 공유를 책임집니다. IPC는 같은 커널위에 동작하는 프로세스간 통신만 가능하지만, 메세지 브로커는 네트워크 통신만 된다면 다른 시스템간 데이터 공유가 가능합니다.

 

메세지 브로커와 이벤트 브로커

메세지 브로커의 대표적인 소프트웨어는 RabbitMQ입니다. 메세지 브로커는 consumer가 데이터를 잘 가져간 것이 확인되면 해당 데이터가 삭제됩니다. 

메세지 브로커 기능을 확장한 개념이 이벤트 브로커입니다. 메세지 브로커는 consumer가 데이터를 가져간 것이 확인되면 데이터를 삭제했지만, 이벤트 브로커는 데이터가 저장되는 유예기간이 있습니다. 이외에 인덱스 등 여러가지 기능이 추가되었습니다.

 

메세지/이벤트 브로커를 사용하는 목적

메세지/이벤트 브로커는 데이터 스트림을 처리하는 아키텍처에서 많이 사용됩니다. 데이터 양이 한정되어 있지 않고 지속적으로 생성되는 데이터 유형을 "데이터 스트림"이라고 부릅니다. 대표적인 예가 주식거래 시스템입니다.

 

데이터 스트림을 처리하기 위해 2개의 Layer구조(저장Layer, 처리Layer)를 사용하는데요. 저장 Layer에서 메세지/이벤트 브로커를 사용합니다.

 

또는, Event driven 아키텍처에서도 많이 사용됩니다. Event driven은 수행해야 할 작업을 이벤트로 발생시켜 비동기로 처리하는 아키텍처입니다. 대규모 트래픽을 처리해야하는 마이크로서비스에서 자주 사용됩니다.

 

참고자료

[1] 유투브: https://youtu.be/H_DaPyUOeTo

[2] 블로그: https://atin.tistory.com/573

[3] aws 데이터트스트림 설명문서: https://aws.amazon.com/ko/streaming-data/

공백

반응형