연결 해제란 무엇인가?
스트리밍 연결이 끊길 수 있는 이유
- 인증 오류(예: 잘못된 토큰 사용 또는 부적절한 인증 방식 사용)
- X 측 스트리밍 서버 재시작. 보통 코드 배포와 관련되며, 일반적으로 예상하고 이에 맞춰 설계해야 합니다.
- 클라이언트가 스트림이 전달하는 게시물 수를 따라가지 못하거나 데이터를 너무 느리게 읽는 경우. 모든 스트리밍 연결은 클라이언트로 전송할 메시지 큐를 기반으로 합니다. 시간이 지나 큐가 과도하게 커지면 연결이 종료됩니다.
- 계정이 게시물에 대한 일일/월간 쿼터를 초과함
- 활성 중복 연결이 너무 많음
- 클라이언트가 갑자기 데이터 읽기를 중단함. 스트림에서 읽는 게시물 처리 속도가 급격히 떨어지면 연결이 종료됩니다.
- 서버와 클라이언트 간 네트워크 문제 가능성
- 일시적인 서버 측 이슈, 예정된 점검 및 업데이트. (상태 페이지 확인: https://api.twitterstat.us/)
일반적인 연결 해제 오류에는 다음이 포함됩니다:
연결 끊김을 예상하고 재연결하기
- 코드가 신규 콘텐츠와 하트비트 수신이 모두 중단된 시점을 감지해야 합니다.
- 그런 경우 재연결 로직을 실행하도록 하세요. 일부 클라이언트와 언어는 읽기 타임아웃을 지정할 수 있으며, 이를 20초로 설정할 수 있습니다.
- 서비스는 이러한 끊김을 감지하면 가능한 한 빨리 재연결해야 합니다.
- TCP/IP 수준 네트워크 오류에는 선형 백오프를 적용하세요. 이러한 문제는 대체로 일시적이며 빠르게 해소됩니다. 각 시도마다 재연결 지연 시간을 250ms씩 늘려 최대 16초까지 증가시키세요.
- 재연결이 적절한 HTTP 오류에는 지수 백오프를 적용하세요. 5초 대기부터 시작해 시도할 때마다 두 배로 늘리고 최대 320초까지 증가시키세요.
- HTTP 429 오류(요율 제한 초과)에는 지수 백오프를 적용하세요. 1분 대기부터 시작해 각 시도마다 두 배로 늘리세요. HTTP 429를 받을 때마다 계정의 요율 제한이 해제될 때까지 기다려야 하는 시간이 증가한다는 점에 유의하세요.
손실된 데이터 복구
요청 한도 및 사용량
- x-rate-limit-limit은 15분 윈도우 동안 클라이언트에 할당된 최대 요청 수를 나타냅니다.
- x-rate-limit-remaining은 현재 15분 윈도우에서 지금까지 사용한 요청 수를 나타냅니다.
- x-rate-limit-reset은 15분 윈도우가 언제 다시 시작되는지(그 시점에 x-rate-limit-remaining이 0으로 초기화됨)를 나타내는 UNIX 타임스탬프입니다.