Passer au contenu principal
Cet article fournit une vue d’ensemble de la limitation précise du débit (FGRL, Fine-Grained Rate Limiting) des services XBOX. En plus de résumer ce qu’est la limitation du débit, ce document vise également à vous aider à déterminer si vous êtes limité et, le cas échéant, quels outils et ressources sont à votre disposition. La limitation précise du débit a été mise en place pour promouvoir une utilisation équitable des ressources XBOX partagées entre les différents titres. Cette solution ressemble à la plupart des systèmes de limitation traditionnels, dans lesquels un service compte le nombre de requêtes effectuées par une entité au cours d’une période donnée. Les entités qui atteignent la limite spécifiée par le service passent alors dans un état de rejet, dans lequel toutes leurs requêtes entrantes sont refusées. Les entités ne peuvent sortir de cet état qu’à l’expiration de la période donnée, qui entraîne la réinitialisation du compteur associé. La limitation précise du débit utilise les mêmes mécanismes de base que ceux mentionnés ci-dessus; cependant, au lieu de suivre une seule entité, la FGRL suit la combinaison utilisateur et titre et compare le compteur associé à deux limites différentes au lieu d’une seule. Les deux limites de la FGRL sont appliquées à chaque service, ce qui signifie que le nombre de requêtes adressées à GameClips n’affecte pas le nombre de requêtes adressées à Presence. Les sections suivantes détaillent l’association utilisateur-titre, la double limitation et l’objet de réponse de limitation HTTP 429.

Terminologie de la limitation précise du débit

Utilisation équitable

XBOX estime que chaque utilisateur doit bénéficier de la même expérience de haute qualité, quel que soit le jeu (ou l’application) auquel il joue. La limitation précise du débit (FGRL) résout le scénario suivant : Le développeur A vient de publier un titre qui suit toutes les pratiques exemplaires des services XBOX afin d’utiliser les services de manière optimale, tandis que le développeur B vient également de publier un titre, qui comporte toutefois un bogue inconnu. Ce bogue amène le titre et chaque utilisateur à inonder le service de présence de requêtes, ce qui le soumet à une charge importante. Le service ralentit puis finit par s’arrêter, dégradant l’expérience des utilisateurs du développeur A alors que c’est le bogue du développeur B qui est à l’origine du problème. Si la FGRL avait été mise en œuvre, le service aurait pu cesser de recevoir les requêtes du titre défaillant, ce qui lui aurait permis de servir au titre du développeur A sa part équitable des ressources.

Granularité titre et utilisateur

Le titre et l’utilisateur ont été choisis comme clé pour garantir une utilisation équitable des ressources XBOX. Le suivi du seul utilisateur créerait un scénario dans lequel l’expérience utilisateur dépendrait de l’intégration de chaque titre. Par exemple, la plupart des titres utilisent déjà le service People; pour les besoins de cet exemple, supposons que la limitation précise du débit soit configurée sur le service People pour n’autoriser que 100 requêtes en 5 minutes. Si un utilisateur jouait à un jeu effectuant 100 requêtes en 1 minute, la limite serait dépassée et l’utilisateur ne pourrait plus envoyer de requêtes au service People. Imaginons qu’au cours de la même période, l’utilisateur revienne ensuite à l’écran d’accueil et clique sur sa liste d’amis : comme il aurait déjà dépassé la limite, l’appel à la liste d’amis échouerait jusqu’à la fin de l’intervalle de 5 minutes, alors que l’écran d’accueil n’est pas responsable de la limitation de l’utilisateur. À l’inverse, une limitation basée uniquement sur le titre produirait un résultat tout aussi injuste. Définir une limite par titre ne tiendrait pas compte de la popularité des titres, et les requêtes seraient simplement traitées dans l’ordre d’arrivée jusqu’à ce qu’une limite soit atteinte. L’association utilisateur-titre garantit qu’aucun titre n’utilise plus de ressources que ce qui est approprié compte tenu de son nombre d’utilisateurs actifs, tout en offrant à chaque utilisateur une part constante des ressources. Organigramme des requêtes et réponses de limitation du débit Le diagramme ci-dessus présente une vue d’ensemble du traitement de la requête. La requête est d’abord générée, puis reçue par le service souhaité. À la réception de la requête, le système vérifie combien de fois l’utilisateur et le titre ont accédé ensemble au service :
  • Si la requête est en dessous de la limite, elle est traitée normalement.
  • Si la requête atteint ou dépasse la limite, le service l’abandonne et renvoie à la place une réponse 429.
La réponse indique le délai avant la fin de la période et la reprise du traitement des requêtes de l’utilisateur et du titre.

Limites de rafale et soutenues

Traditionnellement, la limitation du débit consiste en une limite par point de terminaison, suivie sur une période donnée. Cette période représente la durée pendant laquelle le nombre de requêtes d’une entité est suivi. À la fin de la période, le compteur de l’entité est remis à 0 pour recommencer le suivi. Cette approche fonctionne pour la plupart des API; cependant, elle n’était pas suffisamment robuste pour les jeux et les applications qui appellent les services XBOX. La solution ci-dessus suppose que les appels sont effectués de manière constante, régulière et prévisible. Dans le cas des services XBOX, selon le service et le titre demandeur, les modèles d’appel sont radicalement différents. Choisir une seule limite dans ce cas obligerait à faire des compromis aux deux extrémités du spectre des modèles d’appel. La solution des services XBOX utilise deux périodes et deux limites. La plus courte est appelée période de rafale (Burst), tandis que la plus longue est appelée période soutenue (Sustain). La période de rafale de la FGRL est toujours de 15 secondes, tandis que la période soutenue est toujours de 300 secondes (5 minutes). Une période soutenue de 5 minutes comprend donc 20 périodes de rafale. Les limites de rafale et soutenues sont suivies simultanément et comptent donc les requêtes en même temps. La limite de rafale et la limite soutenue sont toutes deux définies sur le service, ce qui signifie que chaque service possède ses propres compteurs de rafale et soutenu. Pour vous aider à comprendre comment ces deux limites fonctionnent ensemble, le tableau ci-dessous présente un utilisateur jouant à un titre qui envoie un certain nombre de requêtes à un service ayant mis en œuvre la FGRL. Dans ce cas, la limite de rafale est de 30 requêtes en 15 secondes et la limite soutenue de 100 requêtes en 5 minutes. Le tableau montre qu’au cours des 15 premières secondes, l’utilisateur déclenche la limite de rafale en effectuant 35 requêtes. Ces 5 requêtes supplémentaires sont abandonnées et 5 réponses 429 sont envoyées. Bien qu’elles soient limitées, ces 5 requêtes comptent toujours dans la limite soutenue. Dès que l’une ou l’autre limite est déclenchée, aucune requête n’est acceptée, comme le montre le déclenchement des deux limites à 45 secondes, puis à nouveau lorsque seulement 4 requêtes sont effectuées à 285 secondes.

Objet de réponse HTTP 429

Lorsque le compteur associé à l’utilisateur et au titre atteint ou dépasse la limite de rafale ou la limite soutenue, le service ne traite pas la requête et renvoie à la place une réponse HTTP 429. Avec XSAPI, cela équivaut à un HRESULT de 0x801901AD. Le code HTTP 429, qui signifie « trop de requêtes », est accompagné d’un en-tête contenant une valeur « réessayer après X secondes ». Un objet de réponse 429 de la FGRL contient un en-tête « retry after » qui indique combien de temps les entités appelantes doivent attendre avant de réessayer. Les développeurs qui utilisent XSAPI n’ont pas à s’en soucier, car XSAPI respecte et gère l’en-tête Retry-After. La réponse proprement dite contient les champs suivants :

Limites mises en œuvre

Les services suivants ont mis en œuvre des limites FGRL, appliquées depuis mai 2016. Ces limites sont les mêmes pour tous les sandboxes et tous les titres. Tout titre publié au moyen de XBOX Developer Platform ou Partner Center et commercialisé avant mai 2016 est considéré comme hérité et, à ce titre, exempté. Le tableau ci-dessus représente la liste actuelle des services sélectionnés pour la FGRL. Cette liste n’est pas définitive, car de nouveaux services et des services existants peuvent y être ajoutés. Lorsqu’un service sera ajouté, ce tableau sera mis à jour et une annonce sera faite. Les limites du tableau peuvent être modifiées. À mesure que les services changent et évoluent, les limites évolueront également; vous en serez toutefois informé et les exemptions héritées nécessaires seront accordées.

Correspondance des services et effets de la limitation du débit sur les titres

REMARQUE : la correspondance des API la plus récente est régulièrement mise à jour et disponible dans Live Trace Analyzer API Mapping.

FAQ

Comment savoir si je suis limité et quelles mesures puis-je prendre?

Consultez Pratiques exemplaires pour appeler les services XBOX, qui contient des étapes pour améliorer votre modèle d’appel, ainsi qu’une explication de la façon dont l’assertion XSAPI et les gestionnaires Social et Multiplayer de XSAPI peuvent être utilisés pour vous avertir des problèmes de limitation et les atténuer. Une autre option consiste à enregistrer une trace des appels aux services XBOX, puis à l’analyser à l’aide de l’outil XBOX services Trace Analyzer. Pour enregistrer une trace, vous pouvez utiliser Fiddler pour enregistrer un fichier .SAZ, ou utiliser la journalisation des traces intégrée de XSAPI. Pour activer et utiliser les traces dans XSAPI, consultez Trace Analyzer pour l’examen des appels de service. Une fois la trace obtenue, l’outil XBOX services Trace Analyzer vous avertit lorsqu’il détecte des appels limités.

Les limites peuvent-elles changer?

L’objectif est que les limites publiées ne changent pas au fil du temps. Cependant, si le besoin s’en faisait sentir, certaines limites pourraient être rendues plus strictes; dans ce cas, les titres déjà publiés en RETAIL seraient exemptés des limites mises à jour.

D’autres services vont-ils être soumis à des limites?

Oui, d’autres services et de nouveaux services peuvent créer et créeront des limites. Toutefois, comme pour cette première version de la FGRL, vous en serez informé et les précautions appropriées seront prises.

Quand ces changements prendront-ils effet?

Les limites de débit sont appliquées depuis mai 2016. Depuis avril 2018, les titres qui dépassent d’au moins 10 fois les limites soutenues spécifiées ne réussissent pas le processus de certification XBOX.

Que faire si nous ne pouvons pas respecter les limites?

Consultez Pratiques exemplaires pour appeler les services XBOX et assurez-vous de suivre ces étapes. Si vous êtes soumis à une limitation du débit avec l’un des services sociaux, envisagez également d’utiliser Social Manager Si, après avoir suivi ces étapes, vous ne parvenez toujours pas à rester en dessous des limites, communiquez avec votre gestionnaire de compte développeur. REMARQUE : les titres qui atteignent ou dépassent les limites spécifiées ne seront pas autorisés à réussir la certification après avril 2018. Par exemple, si la limite soutenue est fixée à 300 appels en 300 secondes, comme indiqué dans le tableau ci-dessus, les titres qui atteignent ou dépassent 3 000 appels en 300 secondes échoueront à la certification. Pour obtenir des informations détaillées, y compris les cas de test, consultez XR-132 Service Access Limitations.

Qu’en est-il de mon titre existant?

Tous les titres en RETAIL avant avril 2018 sont considérés comme hérités et sont exemptés.

Mises à jour de contenu?

Pour un titre hérité ou exempté, les mises à jour de contenu sont également exemptées; nous vous encourageons toutefois vivement à tirer parti des outils et des ressources pour optimiser les aspects d’intégration des services de votre jeu.

Puis-je obtenir une exemption pour mon jeu jusqu’à ce que je puisse publier une mise à jour de contenu?

Communiquez avec votre gestionnaire de compte développeur.
Dernière modification le 8 octobre 2026