Todos os produtos
Search
Central de documentação

Microservices Engine:Create a hot parameter throttling rule for RPC requests or custom interface requests

Última atualização: Jun 28, 2026

O controle de fluxo padrão aplica limites de taxa uniformes a todo o tráfego de uma interface. Quando um pequeno conjunto de valores de parâmetro gera carga desproporcional — como alguns IDs de produto durante uma venda relâmpago ou poucos IDs de usuário abusivos — os limites uniformes tornam-se insuficientes. A limitação de parâmetro quente identifica esses valores de alta frequência usando uma política LRU (menos recentemente usado) e aplica limites de taxa por valor com base no algoritmo de token bucket. Isso protege seus serviços sem afetar o tráfego de valores de parâmetro normais.

Cenários

Dados quentes são aqueles acessados com frequência. Pode ser necessário coletar estatísticas sobre os dados mais acessados e aplicar controle de acesso em cenários como:

  • Prevenção de falha de cache: restrinja o acesso aos IDs dos produtos mais comprados em um período para evitar que um grande volume de requisições sobrecarregue o banco de dados devido a falhas de cache.

  • Anti-brushing: limite o acesso de IDs de usuários que enviam requisições frequentemente em curto período para impedir práticas de brushing.

Como funciona a limitação de parâmetro quente

O MSE utiliza uma política LRU para coletar estatísticas sobre os parâmetros quentes acessados com maior frequência e limita as chamadas de recurso que envolvem esses parâmetros com base no algoritmo de token bucket.

Etapa 1: Abra a caixa de diálogo de criação de regra

  1. Faça logon no MSE console e selecione uma região na barra de navegação superior.

  2. No painel de navegação à esquerda, escolha Microservices Governance > Application Governance.

  3. Na página Application list, clique em no cartão de recurso do aplicativo desejado.

  4. Abra a caixa de diálogo Add Hot Parameter Protection (RPC/Custom Interface) usando um dos métodos a seguir:

    Pela página API Details

    No painel de navegação à esquerda, clique em API Details.

    • Para interface RPC: clique em na aba RPC service, selecione a interface, clique em na aba Hotspot Parameter Protection (RPC) no painel direito e clique em Add Hotspot Parameter Protection (RPC) Rule.

    • Para interface personalizada: clique em na aba Custom Interface, selecione a interface, clique em na aba Hotspot Parameter Protection no painel direito e clique em Add Hot Parameter Protection (Custom Interface) Rule.

    Pela página Traffic management

    No painel de navegação à esquerda, clique em Traffic management. Clique em na aba Flow protection, selecione a subaba Hot Parameter Protection (RPC/Custom Interface) e clique em Add Hot Parameter Protection (RPC/Custom Interface).

Etapa 2: Configure a regra

Na caixa de diálogo Add Hot Parameter Protection (RPC/Custom Interface), configure os parâmetros abaixo e clique em New.

Parâmetro

Descrição

Interface name

Nome da interface à qual aplicar a regra. Deve ser idêntico ao nome do recurso especificado durante o rastreamento.

Parameter position Index

Índice baseado em zero do parâmetro a rastrear. Corresponde à lista de parâmetros do método RPC ou do método de rastreamento personalizado. Consulte Como funciona a indexação de parâmetros.

Statistical dimension

Métrica usada para limitação. Veja Escolha uma dimensão estatística.

Statistical cycle time

Duração da janela de tempo, em segundos. Por exemplo, se definido como 10 com limiar de 5, cada valor de parâmetro quente será acessado no máximo 5 vezes a cada janela de 10 segundos.

Single machine threshold

Limiar de QPS para cada valor de parâmetro quente.

Flow control effect

Define o tratamento das requisições excedentes. Disponível apenas quando Statistical dimension estiver definido como Number of requests. Consulte Escolha um efeito de controle de fluxo.

Como funciona a indexação de parâmetros

A indexação é baseada em zero e mapeia a lista de parâmetros da assinatura do método:

  • Método RPC: para com.aliyun.demo:methodA(param0, param1, ……), o índice 0 refere-se a param0.

  • Método de rastreamento personalizado: para SphU.entry("demoResource", EntryType.IN, 1, param0, param1, ……), o índice 0 refere-se a param0.

Escolha uma dimensão estatística

Use esta tabela para selecionar a dimensão adequada ao seu caso de uso:

Dimensão

Comportamento

Mais indicado para

Number of requests

Limita o número total de requisições dentro de uma janela de tempo. Suporta efeitos de controle de fluxo configuráveis (falha rápida ou fila).

Cargas de trabalho com muitas leituras nas quais se deseja suavizar picos de tráfego, como consultas de produtos durante vendas relâmpago.

Concurrent number

Limita o número máximo de requisições processadas simultaneamente. Requisições excedentes são rejeitadas imediatamente (apenas falha rápida). O Flow control effect não é configurável neste modo.

Operações intensivas em recursos ou com muitas escritas, nas quais o enfileiramento aumentaria a contenção do banco de dados, como atualizações de endereço em massa.

Escolha um efeito de controle de fluxo

Quando Statistical dimension estiver definido como Number of requests, escolha um dos seguintes efeitos:

Efeito

Comportamento

Recomendado quando

Fast failure

Rejeita imediatamente as requisições que ultrapassam o limiar. Defina Number of buffered requests para permitir um pequeno pico acima do limiar.

Há necessidade de baixa latência e as requisições rejeitadas podem ser tentadas novamente pelo cliente.

Waiting in line

Enfileira requisições excedentes e as processa a uma taxa constante. Especifique um valor de Timeout em milissegundos. Se a duração estimada da fila exceder o tempo limite especificado, a requisição é rejeitada diretamente.

O cenário envolve deslocamento de carga de pico, como consumo de fila de mensagens (MQ), no qual descartar requisições é indesejável.

Como funciona o enfileiramento: com limiar de 5, o sistema processa uma requisição a cada 200 milissegundos. Se o tempo limite for de 1.000 milissegundos e houver mais de 5 requisições na fila, as requisições adicionais serão rejeitadas.

Exemplos de configuração

Exemplo 1: Enfileirar requisições excedentes durante vendas relâmpago

Durante uma venda relâmpago, poucos IDs de produto geram tráfego massivo. Para manter a estabilidade do sistema, enfileire as requisições que excederem o limiar em vez de descartá-las imediatamente.

Objetivo: processar até 100 requisições por segundo por valor de parâmetro quente. Enfileirar requisições excedentes com tempo limite de 30 milissegundos.

Parâmetro

Valor

Interface name

Nome do recurso da sua interface de venda relâmpago

Parameter position Index

Índice do parâmetro de ID do produto (por exemplo, 0)

Statistical dimension

Number of requests

Statistical cycle time

1 (segundo)

Single machine threshold

100

Flow control effect

Waiting in line

Timeout

30 (milissegundos)

Resultado: quando um valor de parâmetro quente exceder 100 requisições em 1 segundo em uma única instância, as requisições extras serão enfileiradas. Qualquer requisição cujo tempo de espera estimado ultrapasse 30 milissegundos será rejeitada imediatamente.

Exemplo 2: Rejeitar requisições excedentes em operações intensivas em recursos

Em vendas relâmpago, usuários podem modificar endereços de entrega em massa. Essas requisições com muitas escritas consomem recursos significativos do banco de dados. Rejeite as requisições excedentes imediatamente para proteger o sistema.

Objetivo: permitir até 100 requisições simultâneas por valor de parâmetro quente. Rejeitar qualquer excesso imediatamente.

Parâmetro

Valor

Interface name

Nome do recurso da sua interface de atualização de endereço

Parameter position Index

Índice do parâmetro de ID do usuário ou ID do pedido (por exemplo, 0)

Statistical dimension

Concurrent number

Statistical cycle time

1 (segundo)

Single machine threshold

100

Quando Statistical dimension está definido como Concurrent number, as requisições excedentes são rejeitadas imediatamente (falha rápida). O parâmetro Flow control effect não fica disponível neste modo.

Resultado: o sistema consegue processar até 100 requisições simultâneas por valor de parâmetro quente. As requisições excedentes falham imediatamente.