본문 바로가기
WIKI 기술 지식 베이스

Replay captured traffic

원문 보기 위키 갱신

출처: 문서

본문

캡처된 트래픽 재생

다음 정보는 Capture and Replay를 사용하는 무중단 마이그레이션에만 적용돼요. {: .note }

재생은 백필에 사용된 스냅샷과 소스 시스템의 현재 상태 사이의 시간 차이를 좁히는 단계예요.

재생 시작 조건

재생은 종속 스냅샷 마이그레이션이 완료된 후에만 시작해야 해요. 워크플로 모델에서는 일반적으로 다음과 같이 표현돼요:

dependsOnSnapshotMigrations

이 종속성은 중요해요. 재생을 너무 일찍 시작하면 과거 백필과 실시간 변경 처리 사이에 순서 문제가 발생할 수 있어요.

재생 프로세스

Traffic Replayer는 다음 단계를 수행해요:

  1. Kafka에서 캡처된 트래픽을 읽어요.
  2. 요청을 재구성해요.
  3. 재생 시간 변환 및 인증을 적용해요.
  4. 요청을 대상 클러스터로 전송해요.
  5. Kafka 오프셋을 진행시켜 재생이 안전하게 재개될 수 있도록 해요.

주요 재생 설정

다음 표는 주요 재생 워크플로 설정을 설명해요.

설정 설명 기본값
podReplicas 병렬로 실행되는 Replayer pod 수예요. N/A
speedupFactor 재생이 원래 트래픽 타임라인에 비해 얼마나 빨리 따라잡는지 제어해요. 2.0 값은 원래 속도의 두 배로 재생해요. 1.1
removeAuthHeader 재생 전에 캡처된 Authorization 헤더를 제거해요. 캡처된 트래픽에 대상에 유효하지 않은 자격 증명이 포함된 경우 사용해요. N/A
authHeaderOverride 캡처된 Authorization 헤더를 정적 값으로 대체해요. N/A
dependsOnSnapshotMigrations 재생이 시작되기 전에 완료해야 하는 스냅샷 마이그레이션을 지정해요. N/A
nonRetryableDocExceptionTypes 실패로 간주되지만 결정적으로 실패할 것으로 예상되어 재시도되지 않는 예외 클래스 이름 목록이에요. 이 설정은 일치하는 예외를 성공으로 처리하는 RFS allowedDocExceptionTypes와 달라요. N/A

동일한 대상에 replayerConfig.removeAuthHeader: true와 authConfig 블록을 함께 설정하지 마세요. 스키마가 이 조합을 거부해요. 대상의 authConfig에 의존하거나(Replayer가 자동으로 적용함) 캡처된 헤더를 제거하세요. {: .warning }

재생 기간에 영향을 미치는 요인

재생 기간은 다음 요인에 따라 달라져요:

  • 백필 중 캡처된 트래픽 양.
  • 대상 클러스터의 처리 처리량.
  • 구성의 speedupFactor 값.

재생 모니터링

가능하면 대화형 워크플로 보기를 사용하세요:

workflow manage

{% include copy.html %}

다음 명령은 추가 모니터링 정보를 제공해요:

workflow status
workflow log all --follow

{% include copy.html %}

전환 전 검증

Replayer가 실행 중이라고 해서 트래픽을 전환하지 마세요. 진행하기 전에 다음을 확인하세요:

  • 재생이 실시간 경계에 도달했는지.
  • 문서 수가 방향적으로 올바른지.
  • 대표 쿼리가 대상에서 올바르게 동작하는지.
  • 대상 측 오류가 이해되고 허용 가능한지.

다음 명령은 대상 상태를 검증하는 데 도움을 줘요:

console clusters cat-indices
console clusters curl target /my-index/_search --json '{"query":{"match_all":{}},"size":5}'

{% include copy.html %}

재생이 실시간 경계에 도달하고 검증이 통과되면 트래픽을 전환하세요. 롤백 기간이 지날 때까지 소스를 계속 사용 가능하게 유지하세요.

{% include migration-phase-navigation.html %}

더 알아보기 (Learn more)