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 } }] }