FCM을 사용하여 보낸 모든 메시지를 항상 전송하는 것을 목표로 하고 있지만 모든 메시지를 전송하면 전반적인 사용자 환경의 성능이 저하되는 경우도 있습니다. 그 밖에 FCM이 모든 발신자에게 확장 가능한 서비스를 제공하도록 범위를 지정해야 하는 경우도 있습니다. 다음 섹션에 설명된 한도 및 할당량의 유형은 이러한 중요한 요인의 균형을 맞추는 데 도움이 됩니다.
다운스트림 메시지 제한
HTTP v1 API는 다운스트림 메시지에 프로젝트별 분당 할당량을 도입했습니다. 분당 60만 개의 메시지라는 기본 할당량은 시스템의 안정성을 보호하고 급증하는 프로젝트의 영향을 최소화하면서 FCM 개발자의 99% 이상을 지원합니다.
급증하는 트래픽 패턴으로 인해 할당량 초과 오류가 발생할 수 있습니다. 할당량 초과 시나리오에서는 다음 분에 할당량이 다시 채워질 때까지 시스템에서 HTTP 상태 코드 429 RESOURCE_EXHAUSTED
('QUOTA_EXCEEDED')를 제공합니다. 과부하 상황에서도 429 응답이 반환될 수 있으므로 게시된 권장사항에 따라 429를 처리하는 것이 좋습니다.
주의사항:
- 다운스트림 할당량은 요청이 아닌 메시지를 측정합니다.
- 클라이언트 오류(HTTP 상태 코드 400~499)가 계산됩니다(429 제외).
- 할당량은 분 단위로 적용되지만 이러한 시간(분)은 시계 기준으로 계산되지 않습니다.
할당량 모니터링
다음을 사용하여 Google Cloud 콘솔에서 할당량, 사용량, 오류를 확인할 수 있습니다.
- Google Cloud 콘솔로 이동
- API 및 서비스를 선택합니다.
- 표 목록에서 Firebase 클라우드 메시징 API를 선택합니다.
- 할당량 및 시스템 한도를 선택합니다.
할당량 상향 조정 요청
할당량 상향을 요청하기 전에 다음 사항을 확인하세요.
- 사용량이 연속 5분 이상 할당량의 80% 이상입니다.
- 특히 트래픽이 급증할 때 클라이언트 오류율 5% 미만입니다.
- 대규모 메시지 전송 권장사항을 준수합니다.
이 기준을 충족하는 경우 최대 25%까지 할당량 상향 요청을 제출할 수 있으며 FCM에서는 요청을 처리하기 위해 모든 실질적인 노력을 기울입니다(할당량 상향은 보장되지 않음).
임박한 출시 또는 임시 이벤트로 인해 더 많은 다운스트림 메시징 할당량이 필요한 경우, 최소 15일 전에 할당량을 요청하여 요청을 처리할 수 있는 충분한 시간을 확보해야 합니다. 대규모 요청(분당 메시지 1,800만 개 이상)의 경우 최소 30일 이전에 통지해야 합니다. 출시 및 특별 이벤트 요청에도 클라이언트 오류율 및 권장사항 요구사항이 계속 적용됩니다.
자세한 내용은 FCM 할당량을 참조하세요.
주제 메시지 한도 및 팬아웃 제한
자세한 내용은 주제 메시지 할당량 및 한도를 참하세요.
축소형 메시지 제한
축소형 메시지에 설명된 대로 축소형 메시지는 서로 겹쳐서 축소되도록 설계되었으며, 콘텐츠가 없는 알림입니다. 개발자가 앱에 동일한 메시지를 너무 자주 반복하는 경우에는 사용자 배터리에 미치는 영향을 줄이기 위해 메시지 전송을 지연합니다.
예를 들어 기기 하나에 새 이메일 동기화 요청을 많이 보내는 경우 기기가 더 낮은 평균 속도로 동기화할 수 있도록 다음 이메일 동기화 요청이 몇 분 지연될 수 있습니다. 이 제한은 사용자가 느끼는 배터리 영향을 제한하기 위한 목적으로만 수행됩니다.
사용 사례에 높은 버스트 전송 패턴이 필요한 경우에는 비축소형 메시지를 선택하는 것이 좋습니다. 이러한 메시지의 경우 배터리 소모를 줄이기 위해 메시지에 콘텐츠를 포함시켜야 합니다.
축소형 메시지를 기기 하나당 앱별로 메시지 20개로 제한하고 3분마다 메시지 1개를 다시 채웁니다.
단일 기기에 대한 최대 메시지 속도
Android의 경우 단일 기기에 메시지를 분당 최대 240개, 시간당 5,000개 전송할 수 있습니다. 이렇게 기준점이 높은 이유는 사용자가 채팅에서 빠르게 상호작용할 때와 같이 단기간에 트래픽이 급증하도록 허용하기 위해서입니다. 이 한도는 전송 로직 오류로 인해 의도치 않게 기기의 배터리가 방전되는 것을 방지합니다.
iOS에서는 비율이 APN 한도를 초과하면 오류가 반환됩니다.