목록 보기
NATS JetStream 장애 분석
백엔드

NATS JetStream 장애 분석

넥스트리
넥스트리
2026년 9월 14일

두줄요약

NATS JetStream Durable Consumer가 비정상 종료 이후 메시지를 소비하지 못한 장애를 분석했습니다. Consumer 상태값으로 원인을 식별하고, 재생성 및 초기화 스크립트로 복구했습니다.

문제 상황

  • MSA 환경에서 선박 센서·이벤트 데이터를 전달하는 NATS JetStream의 Durable Consumer가 서버 강제 종료 이후 메시지를 소비하지 못하는 장애
  • 재부팅 후에도 기존 Consumer 상태를 재사용하면서 Ack Pending 누적, Pull 요청 부재, 전달·Ack 진행 정체가 발생

원인 분석

  • Outstanding Acks가 MaxAckPending에 도달해 신규 메시지 전달이 제한되는 상태
  • Pull Consumer의 fetch/consume 요청이 발생하지 않아 Waiting Pulls가 0인 상태
  • Last Delivered와 Ack Floor가 장시간 진행되지 않아 소비 흐름이 멈춘 상태

해결 방법

  • Consumer 상태값으로 장애 지점 식별 후 Ack Pending, Pull 루프, 재전송 여부 점검
  • 기존 Durable Consumer 삭제 후 애플리케이션 재기동으로 새로운 Consumer 재생성
  • 서버 재시작 시 Consumer 초기화를 포함한 복구 스크립트 구성

다음 읽기

#NATS 주제를 이어서 읽기

데이터 Backfill을 위한 자원 격리 전략

실시간 트래픽과 백필 트래픽을 분리해 자원 고갈과 DB 스파이크를 막는 구조를 정리했습니다. 전용 큐와 비동기 스레드 풀, 크기 기반 청크 처리로 안정적인 대용량 재전송을 구현했습니다.

넥스트리
넥스트리
백엔드

댓글 0

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

댓글을 불러오는 중...