일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 티스토리챌린지
- java
- 자바
- Spring
- 김영한
- 이차전지관련주
- JavaScript
- 스프링핵심원리
- 코딩테스트
- ElasticSearch
- 카카오
- k8s
- kubernetes
- 스프링
- Effective Java 3
- Sort
- 스프링 핵심원리
- 자바스크립트
- 알고리즘
- 스프링부트
- Effective Java
- 클린아키텍처
- 카카오 면접
- 이펙티브 자바
- 이펙티브자바
- effectivejava
- 예제로 배우는 스프링 입문
- 오블완
- 엘라스틱서치
- 알고리즘정렬
- Today
- Total
Kim-Baek 개발자 이야기
RabbitMq 란 본문
레빗엠큐란?
**레빗엠큐(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 |