A CustomResourceDefinition (CRD) QuotaSchedulingPolicy, parte do conjunto de agendamento de tráfego do Service Mesh (ASM), define uma política para agendar requisições com base em prioridade após o atingimento de uma cota especificada.
Como funciona
O QuotaSchedulingPolicy combina dois mecanismos:
Limitador de taxa: Controla a taxa de requisições por meio de um algoritmo de token bucket. Tokens são adicionados a um bucket em uma taxa fixa. Quando o bucket está vazio, o limite de taxa entra em vigor.
Agendador de prioridade: Enfileira requisições que excedem o limite de taxa e as processa por ordem de prioridade. Requisições de maior prioridade são desenfileiradas primeiro.
Ao receber uma requisição, o limitador de taxa verifica o token bucket. Se houver um token disponível, a requisição passa imediatamente. Caso contrário, o agendador de prioridade enfileira a requisição e a processa conforme seu nível de prioridade.
Comportamento do token bucket
O limitador de taxa utiliza um token bucket para controlar a taxa de requisições. Os campos fill_amount e bucket_capacity interagem da seguinte forma:
O bucket recebe
fill_amounttokens a cadainterval(configurado emrate_limiter).Os tokens se acumulam até o limite de
bucket_capacity. Tokens excedentes são descartados.Se o bucket estiver vazio, novas requisições entram na fila do agendador de prioridade.
Definirbucket_capacitycom valor superior afill_amountpermite picos curtos de tráfego que excedem a taxa constante. Para impedir totalmente os picos, definabucket_capacityigual afill_amount.
QuotaSchedulingPolicySpec
QuotaSchedulingPolicySpec é a configuração de nível superior, definida no campo spec da CRD.
|
Campo |
Tipo |
Obrigatório |
Descrição |
|
|
Sim |
Configuração do limitador de taxa e do agendador de prioridade para agendamento de requisições baseado em cota. |
QuotaScheduler
|
Campo |
Tipo |
Obrigatório |
Descrição |
|
|
double |
Sim |
Quantidade de tokens adicionados ao bucket por ciclo de preenchimento. Combinado com |
|
|
double |
Sim |
Número máximo de tokens que o bucket pode armazenar. Quando a taxa de requisições é inferior à taxa de preenchimento, os tokens se acumulam até este limite. Defina este valor como maior que |
|
|
Sim |
Configurações do limitador de taxa, incluindo o |
|
|
|
Sim |
Agendador baseado em prioridade que enfileira e reordena requisições quando o limite de taxa é excedido. Para a definição completa do tipo, consulte Referência de campos do AverageLatencyScheduledPolicy. |
|
|
|
[]Selector |
Sim |
Regras de correspondência que determinam quais requisições estão sujeitas ao agendamento baseado em cota. Para a definição completa do tipo, consulte Referência de campos do AverageLatencyScheduledPolicy. |
Veja também
Referência de campos do RateLimitingPolicy: definição do tipo
RateLimiterParameterse configuração deintervalReferência de campos do AverageLatencyScheduledPolicy: definições dos tipos
SchedulereSelector