목록 보기
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 서버 스케일 아웃/인 환경에서 중복 처리 방지와 운영 단순화에 활용

댓글 0

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

댓글을 불러오는 중...