목록 보기
NRTI (Near Real-Time Indexing)
백엔드

NRTI (Near Real-Time Indexing)

딜리셔스
딜리셔스
2022년 11월 21일

두줄요약

Elasticsearch 색인 구조를 Kafka와 Debezium 기반 이벤트 처리로 전환한 사례를 소개했습니다. ECK를 함께 적용해 색인 속도와 운영 안정성을 함께 높였습니다.

문제 상황

  • Elasticsearch 기반 검색서비스에서 DB 데이터를 색인하고 안전하게 서빙하는 과정의 개선 필요
  • 기존 전체색인과 증분색인 방식의 지연, 누락, 단일 인스턴스 불안정, DB 부하, 운영 이슈 누적

원인 분석

  • 전체색인과 증분색인의 분리 처리로 인한 데이터 누락과 늦은 반영
  • 단일 애플리케이션·단일 인스턴스 구조로 인한 확장성과 안전성 한계
  • 조인 많은 주기적 쿼리, DynamoDB 비용, SQS 잔존 메시지, Elasticsearch 운영 복잡도

해결 방법

  • Kafka와 Debezium CDC로 상품 변경 이벤트를 Topic으로 발행하고 Consumer로 색인 처리
  • Partition과 Consumer Group을 1:1로 맞춰 정합성과 처리 효율 확보
  • ECK로 Elasticsearch 운영, 모니터링, Snapshot 백업·복구 강화

성능/운영 포인트

  • 전체색인 처리시간과 증분색인 지연을 크게 단축
  • 활성/비활성/삭제 포함 전체 상품 색인으로 데이터 범위 확대
  • 장애 시 Snapshot 기반 빠른 복구와 안정적 운영 구조 확보

적용해볼 점

  • 이벤트 기반 색인 구조로 전환해 검색 반영 지연을 줄이는 접근
  • Kafka Consumer Group 설계를 통해 파티션과 처리량 균형 점검
  • 검색엔진 운영에는 백업·모니터링·버전 관리까지 함께 고려

댓글 0

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

댓글을 불러오는 중...