PlayFab의 제한
제한은 클라이언트가 특정 API 또는 API에 대해 설정된 API 호출 속도 제한을 초과하려고 할 때 발생합니다. 이러한 제한은 단일 게임이 다른 게임의 PlayFab 서비스를 방해하지 않도록 하기 위해 적용됩니다.
PlayFab 제한 이해
PlayFab은 요청의 대상 또는 요청이 영향을 미치는 대상(대부분의 경우)에 따라 제한 제한을 적용합니다. 해당 플레이어와 관련된 토큰으로 한 플레이어를 대상으로 하거나 변경하는 API를 사용하는 경우 PlayFab은 한 플레이어에 적합한 속도를 선택합니다. 요청이 타이틀 관련 토큰을 사용하고 플레이어를 대상으로 하지 않는 경우 타이틀에 적합한 다른 제한 집합이 선택됩니다. 타이틀 토큰으로 호출하면 더 많은 플레이어, 엔터티에 영향을 주거나 단일 플레이어에 비해 더 많은 PlayFab 작업을 더 빠르게 수행할 수 있으므로 이러한 제한은 단일 플레이어별 토큰보다 높습니다. 또한 PlayFab은 허용된 요청의 버킷을 사용하여 특정 기간에 수행할 수 있는 요청 수를 제한합니다. 대부분의 제한에는 버스트 시나리오의 경우 짧은 시간에 더 많은 요청을 할 수 있는 버킷과 일반 시나리오의 경우 더 긴 시간에 더 적은 요청을 할 수 있는 버킷의 두 가지 버킷이 있습니다.
제한 알고리즘 요약
- 본문(예: 타이틀 플레이어, 타이틀 엔터티, 마스터 플레이어 또는 문자)을 먼저 확인하여 API 호출의 대상이 되는 엔터티를 식별합니다.
- 본문에 명확한 대상 엔터티가 없는 경우 토큰 유형(타이틀 플레이어, 마스터 플레이어 또는 타이틀)을 사용하여 제한을 결정합니다.
- 제한 버킷이 만료된 경우 해당 버킷을 제거하고 새 빈 버킷을 만듭니다. 제한 버킷(버스트 및 지속) 수를 증가시키고 호출이 제한 버킷을 초과하는지 확인합니다.
- 제한을 초과하면 빈 새 버킷을 사용할 수 있을 때까지 남은 시간(초)과 함께 429 오류를 반환합니다.
대상 엔터티 제한의 이점
대상 엔터티 제한은 대상 엔터티의 형식에 따라 특정 작업에 제한을 적용하는 메커니즘입니다. 이러한 제한은 시스템 안정성을 유지하고 남용을 방지하여 사용자에게 다음을 제공합니다.
- 플레이어당 일관된 제한: 타이틀 확장은 개별 플레이어의 제한에 영향을 주지 않으므로 타이틀이 임의 용량 제한에 대한 우려 없이 사용자 기반을 확장할 수 있습니다.
- Uniform Player 제한: 동시 사용자에 관계없이 플레이어는 동일한 제한을 경험합니다. 이를 통해 개발자는 개발 초기에 소규모 사용자 기반의 제한 문제를 식별할 수 있습니다.
- 서비스 안정성: 제한은 단일 플레이어의 트래픽이 PlayFab 서비스 또는 여러 타이틀에서 공유되는 특정 데이터 평면 파티션에 압도되거나 부정적인 영향을 미치지 않도록 방지합니다.