핵심 요약
딜리셔스가 Kafka 기반의 Debezium CDC와 Elasticsearch/ECK를 활용한 Near Real-Time Indexing(NRTI) 아키텍처를 도입해 색인 처리 속도와 데이터 포괄성을 대폭 개선했습니다.
구현 방법
- Debezium을 통해 MySQL의 binlog를 읽어 Topic으로 발행하고, before/after 데이터를 비교하여 색인 이벤트를 생성합니다.
- Topic을 3개 Partition으로 분할하고 Indexer Consumer Application도 3대로 구성하여 1:1 매칭으로 정합성을 유지합니다.
- Kafka Connectors(Debezium Connector 포함)와 Kafka UI를 이용해 파이프라인을 구성하고 운영합니다.
- Elasticsearch를 Kubernetes에서 ECK로 운영하고, 파일비트/메트릭비트를 통한 모니터링 및 Snapshot 백업(S3 연동)으로 안정성을 강화합니다.
- 활성/비활성/삭제 포함 전체 상품 데이터를 색인하도록 확장했으며, 시스템 아키텍처를 간소화했습니다.
주요 결과
- 전체 색인 데이터 양은 AS-IS 대비 4배 증가했으며, 색인 처리 시간은 3시간 30분에서 40분으로 단축되어 약 80% 개선되었습니다.
- 증분 색인의 처리 속도는 1분3분에서 1초20초로 대폭 개선되어 약 90%의 향상를 달성했습니다.
- 데이터 포괄성이 크게 향상되어 활성/비활성/삭제를 포함한 전체 데이터 색인이 가능해졌습니다.
- 향후 다른 파트에서도 Topic 구독이 가능해지고 Debezium으로 다양한 DB 데이터를 가져오는 확장성, Sink Connector 도입으로 Consumer 애플리케이션 없이도 색인 가능성이 제시되었습니다.



