Kim-Baek 개발자 이야기

RabbitMq 란 본문

개발/Spring

RabbitMq 란

김백개발자 2024. 11. 9. 08:55

레빗엠큐란?
**레빗엠큐(RabbitMQ)**는 메시지 브로커의 한 종류로, 애플리케이션 간의 비동기 통신을 가능하게 하는 오픈 소스 소프트웨어입니다. 다양한 프로그래밍 언어를 지원하며, 분산 시스템에서 데이터를 안정적으로 전달하는 데 사용됩니다.

왜 레빗엠큐를 사용할까요?
* 비동기 처리: 작업 처리 시간이 오래 걸리는 경우, 메시지를 큐에 넣고 다른 작업을 수행할 수 있습니다.
* 시스템 분리: 애플리케이션 간의 의존성을 줄이고, 각 애플리케이션이 독립적으로 작동할 수 있도록 합니다.
* 확장성: 시스템 부하가 증가하더라도 메시지 큐를 추가하여 시스템 성능을 향상시킬 수 있습니다.
* 데이터 전달 보장: 메시지가 손실되지 않도록 다양한 메커니즘을 제공합니다.

레빗엠큐의 주요 개념
* Producer: 메시지를 생성하고 발행하는 역할
* Consumer: 메시지를 소비하는 역할
* Exchange: Producer에서 발행한 메시지를 Queue로 라우팅하는 역할
* Queue: 메시지를 저장하는 공간
* Binding: Exchange와 Queue를 연결하는 관계

레빗엠큐의 활용 사례
* 마이크로서비스 아키텍처: 각 서비스 간의 통신을 위한 메시지 버스 역할
* 이벤트 드리븐 아키텍처: 특정 이벤트 발생 시 다른 시스템에 알림
* Task Queue: 작업을 큐에 넣고 비동기적으로 처리
* 로그 전달: 로그 데이터를 중앙 집중식으로 관리

레빗엠큐의 장점
* 다양한 기능: 다양한 라우팅 방식, 메시지 지속성, 클러스터링 등 다양한 기능 제공
* 확장성: 시스템 부하에 따라 쉽게 확장 가능
* 활발한 커뮤니티: 많은 개발자들이 사용하고 있으며, 다양한 자료와 도구가 제공
* 다양한 언어 지원: Java, Python, Ruby 등 다양한 언어를 지원

레빗엠큐의 단점
* 복잡성: 다양한 기능으로 인해 설정이 복잡할 수 있음
* 성능 오버헤드: 메시지 처리 과정에서 약간의 오버헤드 발생 가능

반응형

'개발 > Spring' 카테고리의 다른 글

JPA N+1 문제  (0) 2024.11.14
Apache Kafka 란?  (0) 2024.11.10
Spring Cloud Config  (0) 2024.11.08
Spring Quartz 란?  (0) 2024.11.07
[스프링 핵심원리] 24. 스프링 빈 조회 - 기본  (0) 2021.10.27
Comments