목록 보기
컬리 검색이 카프카를 들여다본 이야기 2
백엔드

컬리 검색이 카프카를 들여다본 이야기 2

마켓컬리
마켓컬리
2022년 8월 24일

두줄요약

카프카 스트림즈로 서로 다른 토픽의 메시지를 병합해 검색 인덱싱 파이프라인을 구성한 사례를 다뤘습니다. 또한 스프링과 연동해 생명주기 관리와 헬스체크 가시성을 확보했습니다.

문제 상황

  • 검색 시스템 개편으로 서로 다른 두 토픽의 메시지를 같은 키 기준으로 조합해 인덱싱해야 하는 요구 발생
  • 기존에는 레디스를 중간 저장소로 두고 수신·정제·병합·색인하는 우회 구조를 사용
  • 스프링 애플리케이션에서는 스트림즈 스레드 장애가 나도 앱 상태가 정상으로 보여 가시성 부족

해결 방법

  • 카프카 스트림즈 DSL로 토픽 간 조인과 병합을 자바 코드만으로 구성
  • 스트림즈를 스프링 애플리케이션에 통합해 StreamsBuilder를 주입받고 생명주기를 스프링에 위임
  • HealthIndicator로 스트림즈 상태를 주기적으로 확인해 오류 상태를 빠르게 감지

다음 읽기

비슷한 주제의 백엔드 글

Kafka Streams 기반 EDA 구축 사례: 올리브영 품절 시스템 현대화 프로젝트

품절 조회를 Oracle 함수 중심 구조에서 Kafka Streams 기반 EDA로 전환해 실시간 재고 처리를 개선했습니다. 그 결과 올영세일 기간 Oracle 함수 호출량을 크게 줄이며 서비스 안정성을 높였습니다.

올리브영
올리브영
백엔드

댓글 0개

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

댓글을 불러오는 중...