목록 보기
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 설계를 통해 파티션과 처리량 균형 점검
  • 검색엔진 운영에는 백업·모니터링·버전 관리까지 함께 고려

다음 읽기

#Elasticsearch 주제를 다룬 다른 회사 글

Logstash에서 Debezium CDC로 전환한 이유

PostgreSQL 조인 검색을 Elasticsearch로 옮기며 Logstash 폴링과 Debezium CDC를 비교했습니다. 삭제 반영 문제를 해결하기 위해 WAL 기반 CDC와 검색 서비스 분리를 적용했습니다.

넥스트리
넥스트리
백엔드

댓글 0개

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

댓글을 불러오는 중...