Quando o tráfego de um microsserviço ultrapassa sua capacidade de processamento, requisições não controladas podem esgotar recursos e causar interrupções no serviço. As regras de limitação impõem um teto de consultas por segundo (QPS) por instância em interfaces específicas. Se o QPS exceder o limiar definido, o Microservices Engine (MSE) rejeita as requisições excedentes imediatamente ou as enfileira a uma taxa constante, conforme o efeito de controle de fluxo escolhido.
Pré-requisitos
Antes de começar, verifique se você tem:
MSE Enterprise Edition ativado
-
Microservices Governance habilitado para suas aplicações. Para obter instruções de configuração, consulte:
Como funciona a limitação
Cada regra de limitação monitora uma interface específica e aplica um limiar de QPS por instância da aplicação.
Se o tráfego ultrapassar o limiar, o MSE trata as requisições excedentes com base no efeito de controle de fluxo:
|
Efeito de controle de fluxo |
Comportamento |
Quando usar |
Compromisso |
|
Fast failure |
Rejeita requisições excedentes imediatamente. O conteúdo da resposta depende do módulo de adaptação configurado nas definições do sistema da aplicação. |
Serviços sensíveis à latência, nos quais a rejeição rápida é preferível ao enfileiramento |
Baixa latência para os chamadores, mas descarta requisições excedentes |
|
Waiting in line |
Enfileira requisições excedentes e as processa a uma taxa constante. Requisições que excedem o tempo limite falham. |
Deslocamento de carga de pico, para suavizar picos de tráfego e processar todas as requisições sempre que possível |
Maior latência para requisições individuais, porém menos requisições descartadas |
Crie uma regra de limitação
Faça login no console do MSE e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.
Na página Application list, clique em no cartão de recursos da aplicação desejada.
-
Abra a caixa de diálogo de regra de limitação por um destes caminhos:
Pela Visão geral da aplicação: Clique em Application overview no painel de navegação à esquerda. Na aba Through QPS TOP, localize a interface desejada e clique em Flow Control na coluna Actions.
Pelos Detalhes da API: Clique em API Details no painel de navegação à esquerda. Na aba WEB service, acesse a aba Interface Flow Control e clique em Add Throttling Rule.
Pelo Gerenciamento de tráfego: Clique em Traffic management no painel de navegação à esquerda. Acesse a aba Flow protection, depois a aba Interface Flow Control e clique em Add Throttling Rule.
-
Na caixa de diálogo Add Throttling Protection Rule ou Add Rule, configure os seguintes parâmetros:
Parâmetro
Descrição
Interface name
Interface à qual a regra de limitação se aplica.
Whether to open
Ativa ou desativa a regra. A alteração entra em vigor imediatamente.
Stand-alone QPS threshold
Limiar de QPS por instância que aciona a regra.
Flow control effect
Define como tratar requisições excedentes. Selecione Fast failure para rejeitá-las imediatamente ou Waiting in line para enfileirá-las a uma taxa de processamento constante.
Timeout
Tempo máximo (em milissegundos) que uma requisição pode aguardar na fila. Requisições que excedem esse período falham. Aplicável apenas quando o Flow control effect está definido como Waiting in line.
Clique em New.
Exemplo: Suavizar picos de tráfego com enfileiramento
Para processar requisições a uma taxa constante durante horários de pico em vez de rejeitá-las, configure uma regra de limitação com enfileiramento:
Defina Stand-alone QPS threshold como
5.Defina Flow control effect como Waiting in line.
Defina Timeout como
5000.
Com essas configurações, o MSE processa uma requisição a cada 200 milissegundos por instância e enfileira as demais. Caso uma requisição aguarde mais de 5.000 milissegundos, ela falha e o MSE retorna a resposta padrão de limitação, como uma página estática ou texto predefinido.