<
메시지 브로커?
>
🌠다음 포스팅🌠

웹 보안을 강화하자
☄이전 포스팅☄

Spring Swagger
Rabbit MQ 와 Kafka

🚀 메세지 큐

사용자의 입력을 메시지로 전달하는 시스템에서 어떤 프로세스에 대한 메지시를 저장하기 위해 할당된 큐

장점

🚀 메세지 브로커

생산자에 의한 요청(메세지)를 Queue에 넣어 순차적 처리하는 방식으로 데이터 통신에서 발생하는 병목현상을 줄일 수 있다.

🍕 AMQP(Advenced Message Queing Protocol)

인스턴스가 데이터를 서로 교환할 때 사용하는 방법으로 메세지 지향 미드웨어를 위한 개방형 표준 응용계층 프로토콜이다.

즉, 이기종간 메세지 교환의 문제점을 해결하기 위해 등장한 프로토콜이다.

🍔특징

🍔 AMQP Standard Exchange Type

Client어플리케이션과 middleware broker와의 메시지를 주고받기 위한 프로토콜

메세지의 라우팅 키를 큐에 1:1으로 매칭 시키는 방법 라운드 로빈 방으로 여러 Consumer간 task 분리

🍕 AMQP 종류

현재 가장 유명한 두가지 Apache KafkaRabbit MQ을 이야기 한다.

🍕 Rabbit MQ

“open source distributed message broker”

비동기식 메세지 관리로 사용자로부터 수집한 데이터를 Queue에 넣고 필요시 꺼내 쓰는 방식

Apache Kafka

“distributed event streaming platform”

아파치 재단이 스칼라로 개발한 오픈 소스 메세지 브로커이며 실시간 데이터 피드를 관리하기 위해 통일된, 높은 처리량, 낮은 지연시간을 지닌 플랫폼을 제공하는 것이 목표이다.

🍕 Rabbit MQ vs Kafka 차이

Kafka가 적절한 곳

Kafka는 복잡한 라우팅에 의존하지 않고 최대 처리량으로 스트리밍하는 데 가장 적합하며 또한 이벤트 소싱, 스트림 처리 및 일련의 이벤트로 시스템에 대한 모델링 변경을 수행하는 데 이상적이다.

즉, 스트리밍 데이터를 저장, 읽기, 다시 읽기 및 분석하는 프레임워크가 필요한 경우 Kafka가 적합하다.

또한 모니터링이 가능하기 때문에 정기적으로 감사하는 시스템이나 메시지를 영구적으로 저장하는 데 이상적이다.

RabbitMQ가 적절한 곳

복잡한 라우팅 서비스를 구축할 경우 RabbitMQ를 사용한다. RabbitMQ는 신속한 요청-응답이 필요한 웹 서버에 적합하며 또한 부하가 높은 작업자 간에 부하를 공유합니다. 즉, 장시간 실행되는 작업, 안정적인 백그라운드 작업 실행, 애플리케이션 간 내부 통신 및 통합이 필요할때 적합하다.

🧾Reference

Rabbit MQ vs Kafka 차이

Kafka, RabbitMQ 개념 및 비교

Top
Foot