Replay captured traffic
출처: 문서
본문
캡처된 트래픽 재생
다음 정보는 Capture and Replay를 사용하는 무중단 마이그레이션에만 적용돼요. {: .note }
재생은 백필에 사용된 스냅샷과 소스 시스템의 현재 상태 사이의 시간 차이를 좁히는 단계예요.
재생 시작 조건
재생은 종속 스냅샷 마이그레이션이 완료된 후에만 시작해야 해요. 워크플로 모델에서는 일반적으로 다음과 같이 표현돼요:
dependsOnSnapshotMigrations
이 종속성은 중요해요. 재생을 너무 일찍 시작하면 과거 백필과 실시간 변경 처리 사이에 순서 문제가 발생할 수 있어요.
재생 프로세스
Traffic Replayer는 다음 단계를 수행해요:
- Kafka에서 캡처된 트래픽을 읽어요.
- 요청을 재구성해요.
- 재생 시간 변환 및 인증을 적용해요.
- 요청을 대상 클러스터로 전송해요.
- 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 %}