1-1. Message Broker

- messageBroker는 프로듀서와 컨뮤서와는 별개의 서버에 구동된다.
- borker는 사용자가 원하는걸로 설정하면 됨, Rabbit, Kafka, AWS, Azura 등
producer → messageBroker에 데이터를 보낸다
consumer는 messageBroker를 확인해서 데이터를 가져간다.
messageBroker는 칸막이 ? 같이 나눠져 있기 때문에 괜춘
여러명 → 택배함 → 여러명 이렇게 가면됨
1-2. MessageBroker의 2가지 방식
- 대표로 Rabbit, Kafka 각각 알아봄

1-2-1 Rabbit

- 하나 또는 비교적 적은 수의 서버에 설치한다.
⚙️ 사용하는 프로토콜
- 통신으로 AMQP 프로토콜을 사용한다.
📝 데이터 저장 형태
- 큐(queue) 형태로 저장
- 주로 메모리에 저장되기 때문에, 빠르지만 유실될 위험성이 높다.
🏃🏻 동작 과정
선입 선출 기반
- 프로듀서가 보낸 데이터를 순서대로 큐 형태로 저장
- 컨슈머가 요청하는대로, RabbitMQ가 데이터를 큐에서 빼내서 전송한다.
- RabbitMQ는 메시지를 받아서 저장도 해주고, 컨슈머가 메시지를 받아갈때마다 데이터를 큐에서 제거도 해준다.
→ 😃 결론
컨슈머는 다른거 고려할 필요 없이 브로커에게 메시지를 요청하기만 하면 된다. ( smart broker , dumb consumer라고 불리기도 함)
1-2-1 Kafka

- 일반적으로 큰 규모의 클러스터로 운영된다.
⚙️ 사용하는 프로토콜
- TCP를 기반으로 한 자체적인 프로토콜을 사용한다.
📝 데이터 저장 형태
- 로그 형태로 저장
- 데이터가 디스크에 저장돼서 유실로부터 안전함
🏃🏻 동작 과정
디스크에 로그 형태로 저장된다.
- 프로듀서가 보낸 메시지가 디스크에 로그 형태로 저장됨
- 이 메시지들을 컨슈머가 받아감
더보기
💡
그냥 간단하게, 로직을 처리 하는 애들을 smart 붙이는 것 같음 ⇒ RabbitMQ는 broker가 일하니까 smart broker , dumb consumer
⇒ kafka는 consumer가 일하니까 smart consumer , dumb broker
✅ 둘 다 큐를 "사용"하긴 하지만…
- RabbitMQ는 고전적인 큐에 가깝고,
- Kafka는 로그(append-only log) 구조를 큐처럼 쓰는 스트리밍 플랫폼
💡 요약
|
질문
|
답변
|
|
둘 다 큐 쓰는 거야?
|
✅ 그렇지만 방식이 다름
|
|
RabbitMQ는?
|
전통적인 큐 기반 메시지 브로커
|
|
Kafka는?
|
로그 기반의 분산 스트리밍 플랫폼 (큐처럼도 쓸 수 있음)
|
'스프링 | 스프링 부트' 카테고리의 다른 글
| [ 프로젝트 고도화 ] : 채팅 메시지 조회 Redis 캐싱 및 락 도입 (3) | 2025.08.03 |
|---|---|
| Spring Boot Actuator - Health Endpoint 커스터마이징 (2) | 2025.07.31 |
| Spring Boot Actuator - 개념 / 사용 (0) | 2025.07.31 |
| [ Spring ] JWT 개념과 기본 구현 (1) | 2025.07.25 |
| 🔨 @Builder vs @SuperBuilder (0) | 2025.07.25 |