본문 바로가기
DATA/Kafka

메시징 미들웨어 Kafka, RabbitMQ

by bzerome240 2022. 6. 12.

메시지 큐 MQ

: 메시지 지향 미들웨어(MOM)를 구현한 시스템

  • 비동기 - Queue라는 임시저장소가 있기 때문에 나중에 처리 가능
  • 탄력성 - consumer 서비스가 다운되더라도 메시지는 MQ에 남아 있다.
  • 보장성 - MQ에 들어가면 모든 메시지는 consumer 서비스에 전달된다는 보장이 있다.

https://velog.io/@cho876/%EC%B9%B4%ED%94%84%EC%B9%B4kafka-vs-RabbitMQ

  • producer (publisher): 정보를 제공하는 자
  • consumer (subscriber): 정보를 제공받아 사용하는 자
  • Queue: producer의 데이터를 임시 저장 및 consumer에 제공하는 곳

 


 

Kafka

  • 대용량 분산 로그 트래픽을 실시간으로 처리 가능하다.
  • 안정적으로 운영이 가능하다.
  • kafka에서 발생한 모든 로그를 ES에 메시지 저장이 가능하다.
  • 메시지의 생성, 소비, 관리를 독립시킨 구조

 

https://velog.io/@cho876/%EC%B9%B4%ED%94%84%EC%B9%B4kafka-vs-RabbitMQ

  • kafka cluster 내 broker에 대한 분산처리는 Zookeeper가 담당한다.
  • consumer가 broker로부터 직접 메시지를 pull 로 가져간다.
  • broker: kafka 서버

 

zookeeper

: 분산 메시지 큐의 정보를 관리하는 역할

  • kafka cluster의 설정 정보를 최신으로 유지하며 cluster내에서 broker 서버가 추가되거나 삭제될 때 그 정보를 cluster에 속한 서버들끼리 공유할 수 있도록 한다.
  • kafka cluster의 리더를 발탁하는 역할을 한다.
  • 과반수 방식으로 운영하고 있기 때문에, 홀수개의 주키퍼 서버 운영 권장

 


 

RabbitMQ

  • 메시지 라우팅 키를 통해 메시지 라우팅을 지원한다.
  • Exchange와 Quere의 바인딩을 통해 메시지를 소비한다.
  • 지정된 수신인에게 원하는 방식으로 메시징을 신뢰 있게 전달한다.

 

https://tech.kakao.com/2021/12/23/kafka-rabbitmq/

  • exchange: publisher가 전달한 메시지를 queue에 전달하는 역할
  • RammitMQ는 queue에 들어가기 전 exchange라는 단계를 더 거친다.

 


 

Kafka vs RabbitMQ

Kafka

  • 시용 목적: 클러스터를 통해 병렬처리가 가능하므로, 대용량 분산 로그 트래픽 처리에 유리하다.
  • publisher 중심 설계
  • 메시지가 전달되더라도 event streamer에 저장되어있다.

 

RabbitMQ

  • 사용 목적: 대용량 트래픽 처리에는 불리하며, 지정된 수신인에게 원하는 방식으로 메시징을 전달하는데 유리하다. 관리적인 측면, 다양한 기능 구현을 위한 서비스를 구축할 때 사용한다.
  • broker 중심 설계
  • 메시지가 전달되면 queue에서 삭제된다.

 

 


 

참조

 

카카오 개발자들을 위한 공용 Message Streaming Platform - Kafka & RabbitMQ

안녕하세요, 인프라팀 loki 입니다.오랜 시간 인프라에서 TF단위로 소소하게 제공하던 공용 Kafka와 공용 RabbitMQ의 사용량이 점점 커지고, 많은 서비스팀에서 이용해 주셔서, 운영고도화를 위해 정

tech.kakao.com

 

 

카프카(kafka) vs RabbitMQ

오늘은 kafka와 RabbitMQ의 차이에 대해 알아보도록 하겠다. 1. 이해 1-1. 메시지 큐(MessageQuque : MQ) kafka와 rabbitMQ를 이해하기 위해선 우선 메시지 큐에 대한 이해가 선제적으로 필요하다. >메시지 큐(Mes

velog.io

 

 

728x90
반응형

댓글