목록 보기
Amazon MQ의 Virtual Topics를 활용한 (Pub-sub)메시지 로드밸런싱
백엔드

Amazon MQ의 Virtual Topics를 활용한 (Pub-sub)메시지 로드밸런싱

ZUM
ZUM
2019년 12월 12일

두줄요약

Amazon MQ Topic 기반 Pub-Sub로 전환한 뒤 발생한 메시지 중복 처리 문제를 다뤘습니다. ActiveMQ Virtual Topics를 적용해 하나의 메시지를 여러 Batch 서버에 분산 소비하도록 해결했습니다.

문제 상황

  • AWS SQS 기반 컨텐츠 동기화를 AmazonMQ ActiveMQ Topic 기반 Pub-Sub로 바꾸면서, 동일 메시지가 모든 Subscriber에 전달되는 중복 처리 문제 발생
  • 허브줌 Batch 서버 2대가 같은 컨텐츠를 각각 처리하며 리소스 낭비 발생

원인 분석

  • Topic 방식의 기본 특성상 모든 Subscriber가 동일 메시지 수신
  • SQS Queue 방식에서는 1개의 Queue를 2대의 Batch 서버가 나눠 소비해 중복이 없었음

해결 방법

  • ActiveMQ의 Virtual Topics 적용
  • Publisher는 VirtualTopic.{토픽이름} 으로 발행, 로드밸런싱이 필요한 Subscriber는 Consumer.{clientId}.VirtualTopic.{토픽이름} 으로 구독
  • Subscriber별 물리 Queue 자동 생성으로 하나의 Queue에서 메시지 분산 소비

적용해볼 점

  • Subscriber 수가 늘어나도 Publisher 수정 없이 확장 가능한 Pub-Sub 구조 검토
  • Batch 서버 스케일 아웃/인 환경에서 중복 처리 방지와 운영 단순화에 활용

다음 읽기

비슷한 주제의 백엔드 글

최적의 메시지 브로커를 찾아서

프리즘의 메시지 브로커를 SQS, Kafka, RabbitMQ 순으로 바꾼 이유를 정리했습니다. 요구 사항에 맞는 전달 보장과 스케일링, 분배 특성이 선택의 핵심이었습니다.

매드업
매드업
백엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...