메시지큐, 메시지/이벤트 브로커

이외에도 카프카를 이해하기 위해서는 메세지/이벤트 브로커와 메세지 큐에 대한 선제적인 이해가 필요하다

메시지큐

먼저 메시지 큐부터 살펴보자

메시지큐는 아래와 같은 형태이다.

메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템으로 프로그램(프로세스) 간의 데이터를 교환할 때 사용하는 기술이다

메시지 큐 구조

  1. producer: 정보를 제공하는 자
  2. consumer: 정보를 제공받아서 사용하려는 자
  3. Queue: producer의 데이터를 임시 저장 및 consumer에 제공하는 곳

메세지는 Endpoint 간에 직접적으로 통신하지 않고, 중간의 Queue를 통해 중개된다

메시지 큐 장점

  1. 비동기: queue라는 임시 저장소가 있기 때문에 나중에 처리 가능
  2. 낮은 결합도: 애플리케이션과 분리
  3. 확장성: producer or consumer 서비스를 원하는대로 확장할 수 있음
  4. 탄력성: consumer 서비스가 다운되더라도 애플리케이션이 중단되는 것은 아니며 메시지는 지속하여 MQ에 남아있다.
  5. 보장성: MQ에 들어간다면 결국 모든 메시지가 consumer 서비스에게 전달된다는 보장을 제공한다.

메시지브로커

메시지브로커의 경우 publisher가 생산한 메세지를 메세지 큐에 저장하고, 저장된 데이터를 consumer가 가져갈 수 있도록 중간 다리 역할을 해주는 브로커(broker)라고 볼 수 있다.

보통 서로 다른 시스템(혹은 소프트웨어) 사이에서 데이터를 비동기 형태로 처리하기 위해 사용한다. (대규모 엔터프라이즈 환경의 미들웨어로서의 기능)