개요
스트리밍 데이터를 소비할 때 연결 시간을 최대화하고 매칭된 모든 데이터를 수신하는 것이 기본 목표입니다. 이를 위해서는 다음이 필요합니다:- 이중 연결 활용
- 자동으로 연결 해제 감지
- 빠른 재연결
- 손실된 데이터 복구 계획
이중 연결
이중 연결을 사용하면 스트림에 대해 두 개 이상의 동시 연결을 설정할 수 있습니다. 두 개의 별도 컨슈머로 연결하고 두 연결을 통해 동일한 데이터를 수신하여 이중화를 제공합니다. 이점:- 한 스트림이 연결 해제되면 핫 페일오버
- 기본 서버가 실패해도 보호
- 재연결 중에도 지속적인 데이터 전송
사용 방법
두 번째 클라이언트로 동일한 스트림 URL에 연결하면 됩니다. 두 연결을 통해 데이터가 전송됩니다.이중 연결은 Enterprise 액세스에서 제공됩니다. Filtered Stream은 Enterprise 프로젝트에 대해 최대 두 개의 이중 연결을 허용합니다. Firehose Streams는 최대 20개의 동시 연결을 지원하기 위해
partition 파라미터를 사용하며, Sample10 (Decahose)는 최대 2개의 파티션을 지원합니다. 연결 한도는 사용 중인 endpoint 문서를 확인하세요.Backfill
연결 해제를 감지한 후 시스템은 연결 해제가 얼마나 지속되었는지 추적하여 적절한 복구 방법을 결정해야 합니다.5분 이하의 연결 해제
재연결 시 backfill 파라미터를 사용하여 연결 해제 기간 동안 매칭된 Post를 수신하세요.
요청 예시:
Filtered Stream:
중요 고려사항:
- 오래된 Post가 일반적으로 새로 매칭된 Post보다 먼저 전달됩니다
- Post는 중복 제거되지 않습니다 — 90초 동안 연결이 끊겼는데 2분의 backfill을 요청하면 30초의 중복 Post를 받게 됩니다
- 시스템은 중복을 허용해야 합니다
- Backfill은 Enterprise 액세스에서 제공됩니다
복구
5분 이상 지속되는 연결 해제의 경우, Recovery 기능을 사용하여 지난 24시간 이내의 누락된 데이터를 재생하세요.Recovery 작동 방식
start_time과end_time파라미터로 연결 요청- Recovery가 지정된 시간 기간을 다시 스트리밍
- 완료되면 연결이 끊어집니다
파라미터
요청 예시
Filtered Stream:Recovery 제한:
- Enterprise 액세스에서 제공됩니다
- Recovery 창: 과거 최대 24시간
- Filtered Stream은 2개의 동시 recovery job을 허용합니다
- Firehose, Sample10 (Decahose), 언어별 firehose 스트림도 recovery를 지원합니다
- 기본 1% Sample Stream은 recovery를 지원하지 않습니다. 대신 Search endpoint를 사용하세요
대체 복구: 검색
Backfill 또는 recovery 기능에 액세스할 수 없거나 연결 해제가 24시간을 초과한 경우, Search Posts endpoint를 사용하여 누락된 데이터를 요청할 수 있습니다.복구 결정 트리
모범 사례
- 연결 해제 지속 시간 추적 — 시스템은 연결 해제 발생 시점과 지속 시간을 기록해야 합니다
- 자동 복구 구현 — 연결 해제 지속 시간에 따라 적절한 복구 방법을 자동으로 선택하세요
- 중복 처리 — Backfill과 recovery 모두 중복 Post를 전달할 수 있습니다. 중복 제거 로직을 구현하세요
- 이중 연결 사용 — 사용 가능한 경우 여러 연결을 유지하여 데이터 손실을 방지하세요
- Recovery job 모니터링 — Recovery 작업의 상태와 완료를 추적하세요
다음 단계
연결 해제 처리
연결 해제 감지 및 처리
스트리밍 데이터 소비
견고한 스트리밍 클라이언트 구축
고용량 처리
고처리량 스트림 처리