목록 보기
Kurly에서 주문을 모니터링 하는 법
데브옵스

Kurly에서 주문을 모니터링 하는 법

마켓컬리
마켓컬리
2020년 3월 17일

두줄요약

복잡한 Legacy 주문 조회를 Kafka·Elasticsearch·Kibana 기반 실시간 모니터링으로 이전했습니다. 비동기 전송의 flush, ack, 로그 ID를 통해 데이터 유실과 중복 문제를 보완했습니다.

문제 상황

  • 주문량 증가 시 복잡한 조회 쿼리로 주문서 검색 지연·타임아웃 발생
  • 7개 이상 테이블 조인, 다수의 서브쿼리, 집계·정렬 연산에 따른 높은 부하
  • 파일 로깅 기반 적재의 디스크·권한·배포 오류 및 데이터 유실 가능성

구조와 흐름

  • 주문 도메인 이벤트 발생 시 PHP 애플리케이션에서 Kafka로 주문 정보 전송
  • Kafka 적재 데이터를 Elasticsearch로 전달하고 Kibana 대시보드에서 실시간·누적 통계 조회
  • Producer·Broker·Consumer·Topic 기반의 발행/구독 구조 활용

해결 방법

  • php-rdkafka 클라이언트로 주문 이벤트를 비동기 Producing
  • 프로세스 종료 전 flush 호출로 전송 완료 대기 및 유실 방지
  • ack 옵션 추가와 로그 ID 지정으로 전송 확인·중복 데이터 대응

성능/운영 포인트

  • Kibana 대시보드에서 주문 건수·금액·상품 통계를 약 1초 내 조회
  • 이벤트 수집 누락 시 DB와 모니터링 데이터 간 정합성 차이 발생 가능성
  • 대시보드 데이터 기반 인프라 장애 파악 및 Slack 인사이트 공유 가능성

다음 읽기

#Kafka 주제를 이어서 읽기

Kurly에서 주문을 모니터링 하는 법

레거시 주문 검색의 성능·정합성 문제를 Kafka와 Elasticsearch 기반 모니터링으로 이전했습니다.\n비동기 전송의 flush, ack, 멱등성 설정으로 데이터 유실과 중복 문제를 보완했습니다.

마켓컬리
마켓컬리
데브옵스

댓글 0개

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

댓글을 불러오는 중...