당근, 롤링 리스타트 중에도 끄떡없는 검색 시스템 구축!
by DD
5개월 전
조회수 299
ECK 기반 검색 클러스터에서 롤링 리스타트 시 레이턴시 급증 문제 발생
search-coordinator 프록시를 도입하여 웜업된 노드만 트래픽 처리
배포 시간 단축, p99 레이턴시 1초 이내 유지, 예기치 못한 노드 재시작에도 안정적인 서비스 제공
search-coordinator 아키텍처 심층 분석
search-coordinator는 Elasticsearch 앞에 위치하여 웜업된 노드로만 트래픽을 라우팅한다. 구체적으로, HTTP 프록시와 웜업 오케스트레이터 역할을 수행하며, Central Dogma를 통해 검색 대상 노드 목록을 관리한다. 따라서 롤링 리스타트 중에도 서비스 안정성을 확보한다.
웜업 시스템의 핵심 기술: 분산 락과 쿼리 수집
Redis 분산 락을 사용하여 웜업 담당자를 결정하고, 여러 search-coordinator Pod 간의 경쟁을 방지한다. Kafka에서 실시간으로 쿼리 로그를 consume하여 웜업 쿼리 풀을 구성한다. 반면, 실 트래픽 기반 웜업을 통해 캐시 효율을 극대화하고, p99 레이턴시 1초 이내를 달성한다.
롤링 리스타트 중 샤드 부족 방지 전략
동시에 웜업 가능한 노드 수를 제한하여 샤드 부족 문제를 방지한다. 구체적으로, 웜업 중인 노드 수를 최대 2개로 제한하고, 샤드 복제본 정책에 맞춰 계산한다. 따라서 데이터 무결성을 유지하면서 서비스 가용성을 확보한다.
댓글 0
첫 번째 댓글을 남겨보세요!