스트리밍 데이터를 수신하는 클라이언트 구축
클라이언트 설계
- filter stream 엔드포인트에 HTTPS 스트리밍 연결을 설정합니다.
- 스트림의 규칙을 추가·삭제하기 위해 filter stream rules 엔드포인트로 비동기 POST 요청을 전송합니다.
- 저용량 데이터 처리 – 스트리밍 연결을 유지하고, 게시물(Post) 객체와 keep-alive 신호를 감지합니다.
- 대용량 데이터 처리 – 비동기 처리로 스트림 수집과 후속 처리를 분리하고, 클라이언트 측 버퍼가 정기적으로 비워지도록 합니다.
- 클라이언트 측에서 데이터 사용량 추적을 관리합니다.
- 스트림 연결 해제를 감지하고 평가하여 자동으로 재연결합니다.
스트리밍 엔드포인트에 연결하기
데이터 소비
- 임의의 순서로 나타나는 필드
- 예기치 않거나 누락된 필드
- 정렬되지 않은 게시물
- 중복 메시지
- 언제든 스트림으로 전달될 수 있는 임의의 신규 메시지 유형
버퍼링
스트리밍 엔드포인트는 데이터가 준비되는 즉시 전송하므로, 경우에 따라 대량 트래픽이 발생할 수 있습니다. X 서버가 즉시 스트림에 새 데이터를 기록하지 못하는 상황(예: 클라이언트의 읽기 속도가 충분히 빠르지 않은 경우—자세한 내용은 연결 끊김 처리 참고)에서는, 클라이언트가 따라잡을 수 있도록 서버 측에서 콘텐츠를 버퍼링합니다. 다만 이 버퍼가 가득 차면 연결을 종료하기 위한 강제 연결 해제가 이루어지며, 버퍼에 있던 게시물은 폐기되고 재전송되지 않습니다. 자세한 내용은 아래를 참고하세요. 앱이 처리 속도에서 뒤처지는 시점을 파악하는 한 가지 방법은 수신 중인 게시물의 타임스탬프를 현재 시간과 비교하고, 이를 지속적으로 추적하는 것입니다. 공용 인터넷에서 발생할 수 있는 지연과 일시적 장애 때문에 스트림 지연을 완전히 없앨 수는 없지만, 앱을 올바르게 구성하면 상당 부분 줄일 수 있습니다. 지연 발생을 최소화하려면:- 클라이언트가 스트림을 충분히 빠르게 읽고 있는지 확인하세요. 일반적으로 스트림을 읽는 동안 실질적인 처리 작업을 수행하지 말고, 스트림을 읽은 뒤 작업을 다른 스레드/프로세스/데이터 저장소로 넘겨 비동기적으로 처리하세요.
- 데이터 센터가 지속적으로 큰 데이터량과 훨씬 더 큰 급증 트래픽(예: 평시 대비 5~10배)을 수용할 수 있을 만큼 충분한 인바운드 대역폭을 보유하고 있는지 확인하세요. 필터링된 스트림의 경우, 귀측에서 필요한 처리량과 이에 따른 대역폭은 규칙이 어떤 게시물과 일치하느냐에 전적으로 좌우됩니다.