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