Disjuntor
As políticas de disjuntor protegem seus serviços de back-end quando ocorre um problema de desempenho. Se o serviço de back-end de uma API atingir o tempo limite por N vezes consecutivas ou se a latência for longa, o mecanismo de downgrade de uma política de disjuntor será acionado para retornar um erro ao chamador da API ou encaminhar solicitações para um back-end especificado. Depois que o serviço de back-end se recupera, o disjuntor se fecha e as solicitações se tornam normais.
Se o gateway não oferecer suporte a essa política, entre em contato com o suporte técnico para atualizar o gateway para a versão mais recente.
Descrição do parâmetro
|
Parâmetro |
Descrição |
|---|---|
|
Policy Type |
|
|
Circuit Breaker Type |
Tipo de acionamento do disjuntor.
|
|
Condition Type |
Modo de acionamento do disjuntor.
|
|
Match Condition |
Este parâmetro só é necessário quando Circuit Breaker Type é definido como Condition downgrade. Configure condições de acionamento para o disjuntor.
|
|
Time Window (s) |
O período para determinar quantas vezes as condições foram atendidas. Use este parâmetro junto com Threshold ou Min Percentage. Se o limite ou a porcentagem for atingido, o disjuntor é acionado. |
|
Threshold |
Este parâmetro é necessário somente quando Condition Type é definido como Count. Defina o limite para acionar o disjuntor. Use este parâmetro junto com Time Window. Uma vez que o número de solicitações de back-end que atendem às condições dentro da janela de tempo atinge o limite, o disjuntor é acionado.
NOTA:
Uma política de disjuntor é acionada por um único componente de gateway. Se o seu gateway tiver vários componentes, o acionamento para cada componente será determinado separadamente. Se o limite for atingido dentro da janela de tempo de um componente de gateway, as solicitações enviadas a esse componente acionam o disjuntor e os outros componentes de gateway ainda encaminham as solicitações normalmente. Um componente de gateway é um endereço de conexão do seu gateway. Para visualizar o número de componentes de gateway, vá para a página Gateway Information do gateway e visualize o número de endereços IP em Private Network Access IP. |
|
Min Calls |
Este parâmetro só é necessário quando Condition Type é definido como Percentage. Defina o número mínimo de chamadas de API que acionarão o disjuntor dentro do período de tempo. O disjuntor não será acionado se o número de chamadas de API dentro do período de tempo for menor que esse valor. |
|
Min Percentage (%) |
Este parâmetro só é necessário quando Condition Type é definido como Percentage. Defina o limite para acionar o disjuntor. Use este parâmetro junto com Time Window. Uma vez que a porcentagem de solicitações de back-end que atendem às condições dentro da janela de tempo atinge o limite, o disjuntor é acionado. |
|
Control Duration (s) |
Tempo durante o qual o disjuntor ficará ligado. Quando o tempo for atingido, o disjuntor será desligado. |
|
Backend Downgrade |
Determine se deve ativar o downgrade do back-end.
|
|
Backend Type |
Este parâmetro é necessário apenas quando o Backend Downgrade está ativado. Especifique o tipo de back-end para o qual as solicitações serão encaminhadas quando o disjuntor estiver ligado.
|
|
Downgrade Parameter Settings |
Determine se deve ativar a configuração do parâmetro de downgrade. Depois que essa opção for ativada, as regras personalizadas terão precedência sobre as condições de acionamento padrão e as configurações de downgrade configuradas acima.
|
|
Parameters |
Defina parâmetros para correspondência de regras.
Por padrão, o sistema fornece os parâmetros reqPath (caminho de solicitação) e method (método de solicitação). Clique em Add Parameter para adicionar parâmetros. |
|
Rules |
Personalize as regras de correspondência para o disjuntor. Clique em Add Rule para adicionar regras. O sistema combina regras de cima para baixo. Ajuste a prioridade da regra movendo as regras para cima ou para baixo.
Exemplo: você ativou Downgrade Parameter Settings e adicionou regras rule01 e rule02 em sequência. E você desativou Trigger Configuration e ativou Backend Downgrade para rule01 e ativou ambas as opções para rule02. Com essas configurações, o disjuntor primeiro verifica se as condições da rule01 são atendidas. Se sim, o disjuntor é ativado com base nas configurações padrão porque nenhuma condição de acionamento foi definida em rule01 e o downgrade do back-end configurado em rule01 é executado. Se não, a verificação é continuada para a rule02. |
Exemplo de script
{
"breaker_condition":{
"breaker_type":"timeout",
"breaker_mode":"counter",
"unhealthy_threshold":30,
"time_window":15,
"open_breaker_time":15,
"unhealthy_percentage":51,
"min_call_threshold":20
},
"scope":"share",
"downgrade_default":{
"type":"http",
"passthrough_infos":null,
"func_info":null,
"mock_info":null,
"http_info":{
"isVpc":false,
"vpc_channel_id":"",
"address":"10.10.10.10",
"scheme":"HTTP",
"method":"GET",
"path":"/demo",
"timeout":5000
},
"http_vpc_info":null
},
"downgrade_parameters":[
{
"name":"reqPath",
"type":"path",
"value":"path",
"disabled":true,
"focused":true,
"id":"92002eqbpilg6g"
},
{
"name":"method",
"type":"method",
"value":"method",
"disabled":true,
"focused":true,
"id":"tuvxetsdqvcos8"
}],
"downgrade_rules":[
{
"rule_name":"rule-test1",
"parameters":[
"reqPath",
"method"
],
"match_regex":"[\"reqPath\",\"==\",\"/test\"]",
"downgrade_backend":{
"type":"mock",
"passthrough_infos":null,
"func_info":null,
"mock_info":{
"status_code":200,
"result_content":"{status: ok}",
"headers":[]
},
"http_info":null,
"http_vpc_info":null
},
"breaker_condition":{
"breaker_type":"timeout",
"breaker_mode":"percentage",
"unhealthy_threshold":30,
"time_window":15,
"open_breaker_time":15,
"unhealthy_percentage":51,
"min_call_threshold":20
}
}]
}
