정보처리기사 기출문제 총정리 ㉙ 메시지 지향 미들웨어 – Kafka·RabbitMQ·이벤트 스트리밍

메시지 지향 미들웨어(MOM)란?

메시지 지향 미들웨어는 애플리케이션 간 비동기 메시지 전달을 위한 인프라입니다. 느슨한 결합, 부하 분산, 서비스 간 통신 신뢰성을 제공합니다.

메시지 큐 vs 이벤트 스트리밍

  • 메시지 큐(Message Queue): 소비 후 메시지 삭제. Point-to-Point 또는 Pub/Sub. RabbitMQ, Amazon SQS
  • 이벤트 스트리밍: 메시지를 보존하며 재처리 가능. 로그 기반. Apache Kafka

Apache Kafka

분산 이벤트 스트리밍 플랫폼. LinkedIn이 개발, Apache 오픈소스로 공개됩니다.

Kafka 핵심 개념

  • 토픽(Topic): 메시지를 분류하는 채널. 파티션으로 분할
  • 파티션(Partition): 토픽의 순서 있는 불변 메시지 시퀀스. 병렬 처리 단위
  • 오프셋(Offset): 파티션 내 메시지 위치. 컨슈머가 관리
  • 프로듀서(Producer): 메시지를 토픽에 발행
  • 컨슈머(Consumer): 토픽에서 메시지 소비
  • 컨슈머 그룹(Consumer Group): 같은 그룹 내 컨슈머는 파티션을 분담하여 처리 (로드 밸런싱)
  • 브로커(Broker): Kafka 서버. 여러 브로커가 클러스터 구성
  • ZooKeeper/KRaft: 클러스터 메타데이터·리더 선출 관리

Kafka 특징

  • 높은 처리량: 초당 수백만 메시지
  • 메시지 보존: 설정된 기간 동안 디스크에 보관 (재처리 가능)
  • 순서 보장: 파티션 내에서만 순서 보장
  • 내구성: 복제 계수(Replication Factor)로 브로커 장애 대응

RabbitMQ

AMQP(Advanced Message Queuing Protocol) 기반의 메시지 브로커입니다.

RabbitMQ 구성 요소

  • Exchange: 메시지 라우팅 규칙 적용. 큐로 메시지 전달
  • Queue: 메시지 저장 공간
  • Binding: Exchange와 Queue의 연결 규칙

Exchange 유형

  • Direct: 라우팅 키가 정확히 일치하는 큐로 전달
  • Topic: 와일드카드 패턴으로 라우팅 (* = 단어 하나, # = 여러 단어)
  • Fanout: 연결된 모든 큐에 전달 (브로드캐스트)
  • Headers: 헤더 속성으로 라우팅

메시지 전달 보장 수준

  • At Most Once: 최대 한 번 전달 (손실 가능)
  • At Least Once: 최소 한 번 전달 (중복 가능). Kafka 기본
  • Exactly Once: 정확히 한 번 전달. 가장 어려움. Kafka 트랜잭션으로 구현

시험 핵심 포인트

  • Kafka: 이벤트 스트리밍, 메시지 보존, 재처리 가능
  • RabbitMQ: 메시지 큐, AMQP, Exchange 유형(Direct/Topic/Fanout)
  • Kafka 파티션: 병렬 처리 단위, 파티션 내 순서 보장
  • 컨슈머 그룹: 파티션을 분담 처리 (로드 밸런싱)
  • At Least Once vs Exactly Once: 중복 vs 정확히 한 번

마무리

메시지 미들웨어는 마이크로서비스 아키텍처의 핵심 통신 방법입니다. Kafka와 RabbitMQ의 차이(스트리밍 vs 큐)와 각 구성 요소의 역할을 이해하면 관련 문제를 쉽게 풀 수 있습니다.

Leave a Comment