메인 콘텐츠로 건너뛰기
스트리밍 데이터를 수신할 때, 연결 시간을 최대화하고 매칭된 모든 데이터를 수신하는 것은 핵심 목표 중 하나입니다. 이를 위해서는 이중화 연결을 활용하고, 연결 해제를 자동으로 감지하여 빠르게 재연결하며, 손실된 데이터를 복구하기 위한 계획을 수립하는 것이 중요합니다. 이 통합 가이드에서는 이중화 연결, 백필(backfill), 복구 등 다양한 복구 및 이중화 기능에 대해 설명합니다.  

이중화 연결

이중화 연결을 사용하면 스트림에 둘 이상의 동시 연결을 설정할 수 있습니다. 이렇게 하면 두 개의 별도 컨슈머로 동일한 스트림에 연결해, 두 연결 모두를 통해 동일한 데이터를 수신함으로써 이중화가 확보됩니다. 따라서 하나의 스트림이 끊기거나 애플리케이션의 기본 서버에 장애가 발생하는 등의 다양한 상황에서도, 앱은 즉시 전환 가능한 핫 페일오버를 갖게 됩니다. 이중화된 스트림을 사용하려면, 기본 연결에 사용한 것과 동일한 URL에 다시 연결하기만 하면 됩니다. 스트림 데이터는 두 연결 모두를 통해 전송됩니다.

백필

연결 끊김을 감지한 후에는 시스템이 스트림에 다시 연결할 수 있어야 합니다. 가능하다면, 적절한 복구 기능을 사용해 데이터를 백필할 수 있도록 연결이 끊겨 있었던 시간이 얼마나 되는지도 시스템에서 기록하도록 해야 합니다.  연결 끊김이 5분 이하였던 것으로 확인되면, 백필 파라미터 backfillMinutes를 사용할 수 있습니다. 이 파라미터를 GET /powerstream 요청에 함께 전달하면, 지난 1분에서 5분 사이에 규칙과 일치하는 게시물을 수신하게 됩니다. 일반적으로 이러한 과거 게시물은 새로 매칭된 게시물보다 먼저 전달되며, 게시물에 대한 중복 제거는 수행하지 않습니다. 즉, 90초 동안 연결이 끊어졌지만 2분 분량의 백필 데이터를 요청하면, 시스템이 허용해야 하는 30초 분량의 중복 게시물을 받게 됩니다. 다음은 백필 파라미터를 포함한 요청 예시입니다: curl 'https://api.x.com/2/powerstream?backfillMinutes=5' -H "Authorization: Bearer $ACCESS_TOKEN" 연결 끊김 시간이 5분을 초과한 것으로 확인되면, 누락된 데이터를 요청하기 위해 recent search endpoint 또는 복구 기능을 사용할 수 있습니다. 

복구

5분짜리 백필(backfill) 윈도우 내에 다시 연결하지 못한 경우, Recovery 기능을 사용하여 최근 24시간 이내에 누락된 데이터를 복구할 수 있습니다. 스트리밍 복구 기능을 사용하면 백필 윈도우를 24시간까지 확장할 수 있습니다. Recovery를 사용하면 누락된 데이터가 발생한 기간을 “재생(replay)”할 수 있습니다. startTimeendTime 요청 파라미터를 사용해 연결 요청을 하면 복구 스트림이 시작됩니다. 연결이 설정되면 Recovery는 지정된 시간 구간의 데이터를 다시 스트리밍한 다음 연결을 종료합니다.  
NameTypeDescription
startTimedate (ISO 8601)YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

복구를 시작할 시간을 나타내는 UTC 기준 날짜입니다.
endTimedate (ISO 8601)YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

복구를 종료할 시간을 나타내는 UTC 기준 날짜입니다.
예시 요청 URL: https://api.x.com/2/powerstream?startTime=2022-07-12T15:10:00Z&endTime=2022-07-12T15:20:00Z