Pular para o conteúdo principal
Este artigo fornece uma visão geral da limitação de taxa refinada (FGRL) dos serviços do XBOX. Além de resumir o que é a limitação de taxa, este documento também pretende ajudar você a determinar se está sendo limitado e, em caso afirmativo, quais ferramentas e recursos estão à sua disposição. A limitação de taxa refinada foi criada para promover o uso justo dos recursos compartilhados do XBOX entre os diferentes títulos. Essa solução é como a maioria dos sistemas de limitação tradicionais, em que um serviço mantém uma contagem do número de requisições que uma entidade fez em um determinado período. As entidades que atingem o limite especificado pelo serviço passam para um estado de rejeição, no qual todas as requisições recebidas da entidade são recusadas. As entidades só conseguem sair desse estado quando o período determinado expira, fazendo com que a contagem associada à entidade seja redefinida. A limitação de taxa refinada usa a mesma mecânica principal mencionada acima, mas, em vez de acompanhar uma única entidade, a FGRL acompanha a combinação de usuário e título e compara a contagem associada a dois limites diferentes, em vez de um. Os limites duplos da FGRL são aplicados em cada serviço, o que significa que a contagem de requisições do GameClips não afeta a contagem de requisições do Presence. As seções a seguir detalham o pareamento de usuário e título, a limitação dupla e o objeto de resposta de limitação HTTP 429.

Terminologia da limitação de taxa refinada

Uso justo

O XBOX acredita que cada usuário deve ter a mesma experiência de alta qualidade, independentemente do jogo (ou aplicativo) que esteja usando. A limitação de taxa refinada (FGRL) resolve o seguinte cenário: O desenvolvedor A acabou de lançar um título que segue todas as práticas recomendadas dos serviços do XBOX, garantindo o uso ideal dos serviços, enquanto o desenvolvedor B também acabou de lançar um título, mas este tem um bug desconhecido. Esse bug faz com que o título e cada usuário enviem chamadas em excesso ao serviço de presença, o que coloca o serviço sob carga intensa. O serviço fica lento e, por fim, para, prejudicando a experiência dos usuários do desenvolvedor A, embora o problema tenha sido causado pelo bug do desenvolvedor B. Se a FGRL estivesse implementada, o serviço teria conseguido parar de receber requisições do título com mau comportamento, permitindo atender ao título do desenvolvedor A com sua fatia justa dos recursos.

Granularidade por título e usuário

O título e o usuário foram escolhidos como chave para garantir o uso justo dos recursos do XBOX. Acompanhar apenas o usuário criaria um cenário em que a experiência do usuário ficaria à mercê da integração de cada título. Por exemplo, a maioria dos títulos já usa o serviço People; portanto, para fins deste exemplo, suponha que a limitação de taxa refinada tenha sido configurada no serviço People, permitindo no máximo 100 requisições em 5 minutos. Se um usuário jogasse um jogo que fizesse 100 requisições em 1 minuto, o limite seria excedido e o usuário não conseguiria fazer mais requisições ao serviço People; imagine que, nesse mesmo período, o usuário volte à tela inicial e clique na lista de amigos: como o usuário já teria excedido o limite, essa chamada da lista de amigos falharia até que o intervalo de 5 minutos passasse, mesmo que a tela inicial não tivesse sido responsável por colocar o usuário no estado limitado. Por outro lado, limitar com base apenas no título produziria um resultado igualmente injusto. Definir um limite por título ignoraria a popularidade dos títulos, e as requisições seriam atendidas por ordem de chegada até que um limite fosse atingido. O pareamento de usuário e título garante que nenhum título use mais recursos do que o adequado para o número de usuários ativos, ao mesmo tempo em que dá a cada usuário uma fatia consistente dos recursos. Rate limiting request and response flowchart O diagrama acima mostra uma visão geral de como a requisição é tratada. Primeiro, a requisição é gerada e, em seguida, recebida pelo serviço desejado. Ao receber a requisição, o sistema verifica quantas vezes o usuário e o título, juntos, acessaram o serviço:
  • Se a requisição estiver abaixo do limite, ela será processada normalmente.
  • Se a requisição estiver no limite ou acima dele, os serviços a descartarão e retornarão uma resposta 429.
A resposta indicará quanto tempo falta para o período terminar e as requisições do usuário e do título poderem ser atendidas.

Limites de pico e sustentados

Tradicionalmente, a limitação de taxa consiste em um limite por ponto de extremidade, acompanhado durante um determinado período. Esse período representa o tempo durante o qual a contagem de requisições de uma entidade é acompanhada. Ao final do período, a contagem da entidade é redefinida para 0 para recomeçar o acompanhamento. Essa abordagem funciona para a maioria das APIs; no entanto, ela não era resiliente o suficiente para jogos e aplicativos que chamam os serviços do XBOX. A solução acima pressupõe que as chamadas sejam feitas de maneira consistente, estável e previsível. No caso dos serviços do XBOX, dependendo do serviço e do título solicitante, os padrões de chamada são drasticamente diferentes. Escolher apenas um limite nesse caso exigiria fazer concessões nas duas extremidades do espectro de padrões de chamada. A solução dos serviços do XBOX usa dois períodos e dois limites. O período menor é chamado de período de pico (Burst), enquanto o maior e mais longo é conhecido como período sustentado (Sustain). O período de pico da FGRL é sempre de 15 segundos, enquanto o sustentado é sempre de 300 segundos (5 minutos). Portanto, durante um período sustentado de 5 minutos, há 20 períodos de pico. Os limites de pico e sustentado são acompanhados ao mesmo tempo e, portanto, contam as requisições ao mesmo tempo. Tanto o limite de pico quanto o sustentado são definidos no serviço, o que significa que cada serviço tem sua própria contagem de pico e sustentada. Para ajudar você a entender como esses dois limites funcionam juntos, a tabela abaixo mostra um usuário jogando um título que está fazendo várias requisições a um serviço que implementou a FGRL. Neste caso, o limite de pico é de 30 requisições em 15 segundos, e o limite sustentado é de 100 requisições em 5 minutos. A tabela mostra que, nos primeiros 15 segundos, o usuário atinge o limite de pico ao fazer 35 requisições. Essas 5 requisições extras são descartadas e 5 respostas 429 são enviadas. Essas 5 requisições, embora limitadas, ainda contam para o limite sustentado. Depois que qualquer um dos limites é atingido, nenhuma requisição é aceita, como mostrado quando ambos os limites são atingidos na marca de 45 segundos e novamente quando apenas 4 requisições são feitas na marca de 285 segundos.

Objeto de resposta HTTP 429

Quando a contagem associada ao usuário e ao título está no limite de pico ou sustentado, ou acima dele, o serviço não trata a requisição e retorna uma resposta HTTP 429. Ao usar a XSAPI, isso equivale a um HRESULT de 0x801901AD. O código HTTP 429 significa “too many requests” (requisições demais) e será acompanhado por um cabeçalho que contém um valor de “repetir após X segundos”. Um objeto de resposta 429 da FGRL contém um cabeçalho “retry after”, que especifica quanto tempo as entidades chamadoras devem aguardar antes de tentar novamente. Os desenvolvedores que usam a XSAPI não precisam se preocupar, pois a XSAPI respeita e trata o cabeçalho Retry-After. A resposta real conterá os seguintes campos:

Limites implementados

Os serviços a seguir implementaram limites de FGRL, com a aplicação desses limites em vigor desde maio de 2016. Esses limites são os mesmos em todas as áreas restritas e títulos. Qualquer título publicado pela XBOX Developer Platform ou pelo Partner Center e lançado antes de maio de 2016 será considerado herdado e, portanto, isento. A tabela acima representa a lista atual de serviços selecionados para a FGRL. Essa lista não é definitiva, pois novos serviços e serviços existentes podem ser adicionados. Quando um serviço for adicionado, esta tabela será atualizada e um anúncio será feito. Os limites da tabela podem ser alterados. À medida que os serviços mudam e evoluem, os limites também mudarão; no entanto, você será notificado e as isenções herdadas necessárias serão feitas.

Mapeamento de serviços e efeitos da limitação de taxa nos títulos

OBSERVAÇÃO: o mapeamento de API mais recente é atualizado regularmente e pode ser encontrado em Live Trace Analyzer API Mapping.

Perguntas frequentes

Como posso determinar se estou sendo limitado e que medidas posso tomar?

Consulte Práticas recomendadas para chamar os serviços do XBOX, que contém etapas para melhorar seu padrão de chamadas, além de uma explicação de como a asserção da XSAPI e os gerenciadores Social e Multiplayer da XSAPI podem ser usados para notificar você sobre problemas de limitação e atenuá-los. Outra opção é gravar um rastreamento das chamadas aos serviços do XBOX e analisá-lo usando a ferramenta Trace Analyzer dos serviços do XBOX. Para gravar um rastreamento, você pode usar o Fiddler para gravar um arquivo .SAZ ou usar o registro em log de rastreamento interno da XSAPI. Para ativar e usar os rastreamentos na XSAPI, consulte Trace Analyzer para revisar chamadas de serviço. Depois que você tiver um rastreamento, a ferramenta Trace Analyzer dos serviços do XBOX avisará ao detectar chamadas limitadas.

Os limites podem mudar?

A intenção é que os limites publicados não mudem com o tempo. No entanto, se houver necessidade, é possível que alguns dos limites se tornem mais rígidos; nesse caso, os títulos já lançados no RETAIL ficariam isentos dos limites atualizados.

Mais serviços terão limites?

Sim, mais serviços e novos serviços podem criar e criarão limites. Porém, assim como nesta primeira versão da FGRL, você será notificado e as devidas precauções serão tomadas.

Quando essas alterações entrarão em vigor?

Os limites de taxa são aplicados desde maio de 2016. Desde abril de 2018, os títulos que excederem os limites sustentados especificados em 10 vezes ou mais não serão aprovados no processo de certificação do XBOX.

E se não conseguirmos cumprir os limites?

Consulte Práticas recomendadas para chamar os serviços do XBOX e verifique se está seguindo essas etapas. Se você estiver sofrendo limitação de taxa em algum dos serviços sociais, considere também usar o Social Manager Se, depois de seguir essas etapas, você ainda não conseguir permanecer abaixo dos limites, entre em contato com seu gerente de conta de desenvolvedor. OBSERVAÇÃO: os títulos no limite especificado ou acima dele não serão aprovados na certificação depois de abril de 2018. Por exemplo, se o limite sustentado for definido como 300 chamadas em 300 segundos, conforme especificado na tabela acima, os títulos com 3000 chamadas ou mais em 300 segundos serão reprovados na certificação. Para obter informações detalhadas, incluindo casos de teste, consulte XR-132 Service Access Limitations.

E o meu título existente?

Todos os títulos no RETAIL antes de abril de 2018 são considerados herdados e estão isentos.

Atualizações de conteúdo?

Para um título herdado ou isento, as atualizações de conteúdo também ficarão isentas, embora recomendemos fortemente que você aproveite as ferramentas e os recursos para otimizar os aspectos de integração de serviços do seu jogo.

Posso obter uma isenção para o meu jogo até conseguir fazer uma atualização de conteúdo?

Converse com seu gerente de conta de desenvolvedor.
Última modificação em 8 de outubro de 2026