목록 보기
데이터 Backfill을 위한 자원 격리 전략
백엔드

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

넥스트리
넥스트리
2026년 7월 13일

두줄요약

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

문제 상황

  • 실시간 트래픽과 백필 트래픽이 공용 자원을 공유해 자원 고갈과 연결 타임아웃 발생
  • 시간 기반 스케줄링으로 백필 데이터를 몰아서 처리하며 DB 부하 스파이크 유발
  • 동기식 블로킹 대기 방식이 스레드와 메모리를 낭비하며 효율 저하

해결 방법

  • NATS 토픽 분리와 ConcurrentLinkedQueue로 실시간 요청과 백필 요청을 인프라·메모리 레벨에서 격리
  • @Async 전용 커스텀 스레드 풀로 백필 처리 워커를 분리해 웹 서버 스레드 보호
  • 크기 기반 청크 추출과 saveAll 배치로 DB 투입량을 일정하게 제어
  • 제어 플래그와 isEmpty() 체크로 블로킹 없이 최종 집계 트리거

다음 읽기

같은 회사의 연관 글

DB 트랜잭션 중심 대량요청 처리 최적화

대량 요청 환경의 병목을 DB 트랜잭션 관점에서 분석하고 개선한 사례입니다. 비관적 락을 낙관적 락과 재시도로 전환해 커넥션 효율과 안정성을 높였습니다.

넥스트리
넥스트리
백엔드

댓글 0

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

댓글을 불러오는 중...