[Kafka] 2. 유사 툴 비교 분석

이강호·2023년 1월 1일
0
post-custom-banner

이번 시간에는 Kafka와 유사한 툴에는 무엇이 있는지 찾아보고 정리하고자 한다.

Kafka와 유사한 툴

그렇다면 Kafka와 유사한 기능을 하는 것들에는 어떤 것들이 있고, 이들과 kafka의 차이점은 무엇인지 알아보자.

Kafka의 가장 근본적인 기능은 Event Streaming 기능이다. 이 기능을 지원하는 대표적인 툴들은 다음과 같다.

  1. RabbitMQ
  2. ActiveMQ

1. RabbitMQ

RabbitMQ는 Pivotal Software사에서 개발한 오픈 소스 메시지 브로커 소프트웨어다. RabbitMQ는 Kafka와 다르게 별도의 코디네이션을 필요로 하지 않는다. 또한 AMQP(Advanced Message Queuing Protocol)를 통해 메세지 전달을 지원한다.

RabbitMQ에는 Exchange와 Queue라는 개념이 있다.

  • Exchange : 편지들이 모이는 우체국과 비슷한 기능을 한다. Publisher에 의해 생성된 메세지들을 보관하는 곳이다.
  • Queue: 메세지가 Consumer에게 전달되기 전에 보관되는 곳이다. Exchange에 있던 메세지들이 Route의 규칙들에 의해 Queue로 전달된다.

RabbitMQ의 큰 특징 중 하나는 메세지 라우팅 키를 통해 메시지 라우팅을 지원하는 점이다. Exchange에 있는 메세지들을 Queue로 전달할 때 4가지 규칙을 설정할 수 있다.

  • fanout(broadcast): 모든 Queue에 전달한다.
  • direct(unicast): 지정된 메세지 라우팅 키를 지니는 Queue에만 전달한다. 여러 Queue가 동일한 메세지 라우팅 키를 지니는 경우 각 Queue에 모두 전달한다.
  • topic(multicast): 메세지의 라우팅 키의 패턴에 따라 메세지를 전달한다. (ex. A*인 경우 A로 시작하는 모든 라우팅 키의 메세지들을 전달)
  • header(multicast): 라우팅 키의 속성을 무시하고 headers 속성을 사용해 메세지를 전달한다.

RabbitMQ와 Kafka의 가장 큰 차이점은 데이터 처리량에 있다. 동일한 리소스의 환경에서 Kafka는 초당 100K의 처리량을 보이는 반면 RabbitMQ초당 4K ~ 10K 정도만 처리할 수 있다. 그 이유는 데이터의 저장 방식의 차이 등 다양하게 있다.

RabbitMQ는 다음의 환경에서 주로 사용된다.

  • 메세지의 필터링이 필요한 경우
  • 대용량 트래픽이 발생하지 않는 경우
  • Consumer가 메세지를 실패없이 수신하는 환경이 필요한 경우

2. ActiveMQ

ActiveMQ는 아파치 소프트웨어 재단에서 자바로 만든 오픈 소스 메시지 브로커이다.

"작성중..."

참고자료)
Top 15 Kafka Alternatives Popular In 2021
Kafka vs RabbitMQ
AMQP 0-9-1 Model Explained

profile
할 때 하고 놀 때 노는 개발자
post-custom-banner

0개의 댓글