RabbitMQ - Kafka - ActiveMQ: Which Message Broker to Choose?
Medium
아래 게시글 내용에 대한 요약 입니다
https://medium.com/huawei-developers/rabbitmq-kafka-activemq-which-message-broker-to-choose-6c6b127e46ef
--------------------------------------------------------------------------------------
Kafka:
Kafka는 분산 스트리밍 플랫폼으로, 고처리량과 실시간 데이터 스트림을 처리하는 데 적합합니다.
주요 특징: 로그 기반 저장, 수평 확장성, 스트림 처리 지원.
Kafka는 대규모 데이터 볼륨을 처리하고 실시간 데이터 변환 및 분석을 가능하게 합니다.
RabbitMQ:
RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 기반으로 하는 메시지 브로커입니다.
주요 특징: 다양한 프로그래밍 언어 지원, 유연한 라우팅 기능, 클러스터링 및 고가용성 지원.
RabbitMQ는 다양한 메시징 패턴을 지원하고 메시지 신뢰성 및 전달을 보장합니다.
ActiveMQ:
ActiveMQ는 엔터프라이즈 사용 사례에 최적화된 메시지 브로커입니다.
주요 특징: 다양한 프로토콜 지원, 유연한 메시지 지속성 옵션, 고급 기능 제공.
ActiveMQ는 메시지 우선 순위, 일정 관리, 재전송 정책 등을 통해 메시지 처리 및 전달을 세밀하게 제어할 수 있습니다.
비교:
성능 및 확장성: Kafka는 높은 처리량과 수평 확장성으로 유명하며, 대량의 데이터를 처리하는 데 뛰어난 성능을 보입니다. RabbitMQ와 ActiveMQ도 좋은 성능을 제공하지만, 대용량 시나리오에서는 Kafka가 일반적으로 더 우수합니다.
메시지 순서: RabbitMQ와 ActiveMQ는 각각 단일 큐 또는 토픽 내에서 메시지 순서를 보장합니다. Kafka는 파티션 내에서 메시지 순서를 보장하지만, 토픽 내의 여러 파티션 간에는 그렇지 않습니다.
메시지 우선순위: RabbitMQ와 ActiveMQ는 메시지 우선순위를 지원하여, 우선순위가 높은 메시지가 먼저 처리될 수 있도록 합니다. Kafka는 내장된 메시지 우선순위 지원이 없습니다.
메시지 모델: RabbitMQ는 AMQP(Advanced Message Queuing Protocol)의 큐 기반 메시지 모델을 따르고, Kafka는 분산 로그 기반 모델을 사용하며, ActiveMQ는 Java 5 Message Service(JMS) 표준을 기반으로 한 큐 기반 모델을 사용합니다.
지속성: 세 브로커 모두 지속 가능한 메시징을 지원하며, RabbitMQ와 ActiveMQ는 구성 가능한 옵션을 제공하는 반면, Kafka는 로그 복제를 통해 지속성을 달성합니다.
메시지 라우팅: RabbitMQ는 교환 및 바인딩을 통한 고급 메시지 라우팅을 제공하고, ActiveMQ는 선택자와 토픽을 사용하며, Kafka는 기본적인 토픽 기반 파티셔닝에 의존합니다.
복제: RabbitMQ는 Mirrored Queues를 통한 복제를 지원하고, Kafka는 내장된 파티션 복제 기능을 가지며, ActiveMQ는 Master-Slave 복제를 사용합니다.
스트림 처리: Kafka는 Kafka Streams를 통한 네이티브 스트림 처리 기능을 제공하며, RabbitMQ도 스트림 처리를 지원하고, ActiveMQ는 제3자 라이브러리에 의존합니다.
지연 시간: RabbitMQ는 낮은 지연 시간을 위해 설계되어, 거의 실시간 처리에 적합합니다.
라이선스: RabbitMQ는 Mozilla Public License 하에 라이선스되며, Kafka와 ActiveMQ는 모두 Apache 2.0 License 하에 라이선스됩니다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2023년 11월 20일 오전 1:16
1
... 더 보기주
... 더 보기이
... 더 보기고용노동부가 주관하는 청년미래플러스 사업, 이전에 공유했었는데요.
... 더 보기지
... 더 보기기
... 더 보기