Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Referência de campos de AverageLatencySchedulingPolicy

Última atualização: Jun 28, 2026

A Custom Resource Definition (CRD) AverageLatencySchedulingPolicy configura o agendamento adaptativo de carga baseado em latência no Alibaba Cloud Service Mesh (ASM). Ela utiliza um algoritmo de Aumento Aditivo e Diminuição Multiplicativa (AIMD) para limitar as taxas de requisição com base na latência observada. Esse mecanismo protege os serviços contra sobrecarga e maximiza o throughput durante a recuperação.

Esta referência descreve todos os campos da CRD, agrupados por tipo de objeto.

AverageLatencySchedulingPolicySpec

Especificação de nível superior do recurso de política.

Campo

Tipo

Obrigatório

Descrição

load_scheduling_core

LoadSchedulingCore

Sim

Configuração principal do agendador.

LoadSchedulingCore

Contêiner da configuração do algoritmo de agendamento de carga.

Campo

Tipo

Obrigatório

Descrição

aimd_load_scheduler

AimdLoadScheduler

Sim

Configuração do agendador de carga baseado em AIMD.

Selector

Determina os fluxos de tráfego afetados pela política com base no ponto de controle, rótulos de fluxo, grupo de agentes e identidade do serviço.

control_point: ingress
label_matcher:
  match_labels:
    user_tier: gold
  match_expressions:
    - key: query
      operator: In
      values:
        - insert
        - delete
  expression:
    label_matches:
      - label: user_agent
        regex: ^(?!.*Chrome).*Safari

Campo

Tipo

Obrigatório

Padrão

Descrição

control_point

string

Não

ingress

Local no serviço onde a política entra em vigor. Valores válidos: ingress, egress, um listener específico ou uma filter chain específica.

label_matcher

LabelMatcher

Não

--

Seleciona fluxos de tráfego com base nos rótulos de fluxo.

service

string

Não

any

Nome de Domínio Totalmente Qualificado (FQDN) do serviço de destino.

LabelMatcher

Seleciona fluxos de tráfego por meio de um ou mais dos três métodos a seguir:

  1. Correspondência de rótulos: correspondência exata de chave-valor.

  2. Expressões de correspondência: correspondência baseada em operadores (In, NotIn, Exists, DoesNotExist).

  3. Expressão arbitrária: combinações lógicas com suporte a regex.

Ao especificar vários métodos, o sistema os combina com um AND lógico. Um LabelMatcher vazio seleciona todas as requisições.

O exemplo a seguir exclua endpoints de verificação de integridade e métricas do agendamento. Esses endpoints não representam tráfego real de usuários e podem distorcer os cálculos de latência:

label_matcher:
  match_list:
    - key: http.target
      operator: NotIn
      values:
        - /health
        - /live
        - /ready
        - /metrics

Campo

Tipo

Obrigatório

Descrição

expression

Expression

Não

Expressão lógica avaliada nos rótulos de fluxo.

match_labels

map[string]string

Não

Pares chave-valor para correspondência exata de rótulos.

match_list

[]MatchRequirement

Não

Lista de requisitos de correspondência baseados em operadores.

Expression

Expressão lógica componível. Defina apenas um campo por objeto Expression.

# Match flows where label "foo" exists AND label "app" equals "frobnicator"
all:
  of:
    - label_exists: foo
    - label_equals:
        label: app
        value: frobnicator

Campo

Tipo

Descrição

all

ExpressionList

Verdadeiro quando todas as subexpressões forem verdadeiras (AND lógico).

any

ExpressionList

Verdadeiro quando qualquer subexpressão for verdadeira (OR lógico).

label_equals

EqualExpression

Verdadeiro quando o rótulo especificado for igual ao valor fornecido.

label_exists

string

Verdadeiro quando existir um rótulo com o nome fornecido.

label_matches

MatchesExpression

Verdadeiro quando o rótulo especificado corresponder à expressão regular fornecida.

not

Expression

Nega o resultado da subexpressão.

ExpressionList

Campo

Tipo

Descrição

of

[]Expression

Lista de subexpressões.

EqualExpression

Campo

Tipo

Obrigatório

Descrição

label

string

Sim

Chave do rótulo.

value

string

Não

Valor do rótulo para correspondência.

MatchesExpression

Campo

Tipo

Obrigatório

Descrição

label

string

Sim

Chave do rótulo para correspondência.

regex

string

Sim

Padrão de expressão regular. Utiliza a sintaxe Go RE2.

MatchRequirement

Correspondência de rótulos baseada em operadores, seguindo o mesmo padrão dos seletores de rótulos do Kubernetes.

Campo

Tipo

Obrigatório

Descrição

key

string

Sim

Chave do rótulo.

operator

enum

Sim

Operador de correspondência. Valores válidos: In, NotIn, Exists, DoesNotExist.

values

[]string

Condicional

Valores de string para correspondência. Obrigatório para In e NotIn. Deve estar vazio para Exists e DoesNotExist.

AimdLoadScheduler

O agendador de carga AIMD usa um controlador de gradiente para ajustar a taxa de tokens com base no desvio entre o sinal de latência observado e o ponto de ajuste. Em caso de sobrecarga do sistema, ele diminui multiplicativamente a taxa de tokens. Durante a recuperação, aumenta linearmente a taxa até que o sistema atinja o estado estacionário.

Campo

Tipo

Obrigatório

Padrão

Restrições

Descrição

gradient

GradientControllerParameters

Sim

--

--

Parâmetros do controlador de gradiente. Consulte GradientControllerParameters.

load_multiplier_linear_increment

float64

Não

0.025

Mínimo: 0

Incremento linear aplicado ao multiplicador de carga a cada 10 segundos enquanto o sistema não estiver sobrecarregado, até atingir max_load_multiplier.

load_scheduler

LoadSchedulerParameters

Sim

--

--

Configuração do agendador de carga de trabalho e do seletor. Consulte LoadSchedulerParameters.

max_load_multiplier

float64

Não

2

Mínimo: 0

Multiplicador máximo de carga durante a recuperação de um estado de sobrecarga. Ao atingir esse valor, o agendador entra no modo de passagem direta — as requisições ignoram o agendador e vão diretamente para o serviço. O modo de passagem direta é desativado se o sistema ficar sobrecarregado novamente. Este campo protege o serviço contra picos de requisições durante a recuperação.

GradientControllerParameters

O controlador de gradiente ajusta o multiplicador de carga com base na razão entre o sinal observado e o ponto de ajuste. O campo slope representa o expoente aplicado a essa razão e controla a agressividade da resposta do controlador.

Campo

Tipo

Obrigatório

Padrão

Descrição

max_gradient

float64

Não

1

Limite superior para o valor do gradiente.

min_gradient

float64

Não

0.1

Limite inferior para o valor do gradiente.

slope

float64

Não

-1

Expoente na razão sinal-ponto de ajuste. Controla a direção e a agressividade da resposta.

**Como funciona o slope:**

Valor

Comportamento

1

Sinal muito alto --> aumenta a variável de controle.

-1

Sinal muito alto --> diminui a variável de controle.

-0.5

Sinal muito alto --> diminui gradualmente a variável de controle.

Mantenha o valor absoluto de slope igual ou inferior a 1.

LoadSchedulerParameters

Configura o agendador de carga de trabalho baseado em Weighted Fair Queuing (WFQ) e especifica os fluxos de tráfego aos quais a política se aplica.

Campo

Tipo

Obrigatório

Padrão

Descrição

scheduler

Scheduler

Não

--

Configuração do agendador de carga de trabalho baseado em WFQ.

selectors

[]Selector

Sim

--

Seletores que definem o escopo dos fluxos de tráfego gerenciados pelo agendador.

workload_latency_based_tokens

bool

Não

false

Estima automaticamente o custo de tokens por fluxo com base na latência histórica. Os tokens correspondem à latência média dos fluxos em cada carga de trabalho nos últimos segundos. Útil para limitação de concorrência, onde concurrency = average latency x in-flight flows. Tokens explícitos nos rótulos de fluxo têm a maior precedência, seguidos pelos tokens na definição da carga de trabalho e, por fim, pelos tokens estimados.

Scheduler

Campo

Tipo

Obrigatório

Descrição

workloads

[]SchedulerWorkload

Sim

Definições de carga de trabalho para o agendador WFQ.

SchedulerWorkload

Define uma carga de trabalho — um grupo de fluxos de tráfego que compartilham os mesmos parâmetros de agendamento.

Campo

Tipo

Obrigatório

Descrição

label_matcher

LabelMatcher

Não

Associa fluxos de tráfego a esta carga de trabalho com base nos rótulos de fluxo.

Name

string

Sim

Nome da carga de trabalho.

Parameters

SchedulerWorkloadParameters

Sim

Parâmetros de agendamento para fluxos que correspondem ao seletor de rótulos.

SchedulerWorkloadParameters

Controla a priorização e o enfileiramento dos fluxos de tráfego dentro de uma carga de trabalho.

Campo

Tipo

Obrigatório

Descrição

priority

float64

Não

Prioridade.

queue_timeout

string

Não

Tempo limite dos fluxos de tráfego na carga de trabalho.

tokens

float64

Não

Custo para admitir um único fluxo. Geralmente definido como milissegundos de latência esperada (tempo até a resposta), ou configurado como 1 quando o recurso é limitado pela contagem de fluxos (por exemplo, limitadores de taxa de terceiros). Este valor é usado apenas quando tokens não são especificados nos rótulos de fluxo.