Como ativar a diminuição da conexão

A diminuição da conexão é um processo que garante que as solicitações atuais em andamento tenham tempo para serem concluídas quando uma VM é removida de um grupo de instâncias.

Para ativar a diminuição da conexão, defina um tempo limite de diminuição da conexão no serviço de back-end. A duração do tempo limite precisa ser de 1 a 3.600 segundos.

Para a duração especificada do tempo limite, as solicitações atuais da VM removida precisam de tempo para serem concluídas. O balanceador de carga não envia novas solicitações para a VM removida. Depois que o tempo limite for atingido, todas as conexões restantes com a VM serão fechadas.

A diminuição da conexão é acionada sempre que uma instância é removida ou excluída de um grupo de instâncias. Especificamente, nos seguintes cenários:

Pode levar até 60 segundos após decorrer o tempo limite especificado para a instância ser encerrada.

Quando você ativa a diminuição de conexão em vários serviços de back-end que compartilham os mesmos grupos de instâncias, o maior tempo limite é usado. Por exemplo, se o serviço de back-end A tem um tempo limite de conexão definido como 100 segundos, e o serviço de back-end B tem esse tempo definido como 200 segundos, o sistema aguarda 200 segundos antes de as instâncias serem encerradas no grupo de instâncias compartilhadas.

Restrições

Como ativar a diminuição da conexão

Console

  1. Acesse a página "Balanceamento de carga" no Console do Google Cloud Platform.
    Acessar a página "Balanceamento de carga"
  2. Clique no botão Editar do seu balanceador de carga ou crie um novo balanceador.
  3. Clique em Configuração do back-end.
  4. Clique em Configurações avançadas, no final do seu serviço de back-end.
  5. No campo Tempo limite de diminuição da conexão, insira um valor entre 0 e 3600. O valor 0 desativa a diminuição da conexão.

gcloud

Ative a diminuição de conexão em um serviço de back-end novo ou existente usando a sinalização --connection-draining-timeout. Por exemplo, ao atualizar um serviço de back-end, utilize essa sinalização junto com sua solicitação:

gcloud compute backend-services update [BACKEND_SERVICE] \
    --connection-draining-timeout [CONNECTION_TIMEOUT_SECS]

em que:

  • [BACKEND_SERVICE] é o serviço de back-end dessa solicitação;
  • [CONNECTION_TIMEOUT_SECS] é o tempo em segundos que será aguardado antes de as instâncias serem encerradas, entre 0 e 3600 segundos, inclusive. O valor 0 desativa a diminuição da conexão. Esse tempo limite se aplica a todos os grupos de instâncias que fazem parte do serviço de back-end.

Ao atualizar sua instância com o subcomando backend-services edit, adicione connectionDraining como parte do corpo do recurso:

# You can edit the resource below. Lines beginning with "#" are
# ignored.
#
# If you introduce a syntactic error, you will be given the
# opportunity to edit the file again. You can abort by closing this
# file without saving it.
#
# At the bottom of this file, you will find an example resource.
#
# Only fields that can be modified are shown. The original resource
# with all of its fields is reproduced in the comment section at the
# bottom of this document.

description: ''
healthChecks:
- https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/healthChecks/[HEALTH_CHECK]
port: 80
portName: [PORT_NAME]
protocol: [PROTOCOL]
timeoutSec: 30
connectionDraining:
  drainingTimeoutSec: [CONNECTION_TIMEOUT_SEC]

API

Para ativar a diminuição de conexão na API ao criar ou atualizar uma instância, faça uma solicitação ao URI da API correspondente e inclua o campo connectionDraining no corpo dessa solicitação. Por exemplo, para criar um novo serviço de back-end, faça uma solicitação POST para o seguinte URI:

Para balanceamento de carga do proxy HTTP(S) ou SSL:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices

Para balanceamento de carga interno:

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/region/[REGION]/backendServices

{  "healthChecks": [
     "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/healthChecks/[HEALTH_CHECK_NAME]"
    ],
   "name": "[BACKEND_SERVICE]",
   "port": 80,
   "portName": "[PORT_NAME]",
   "protocol": "[PROTOCOL]",
   "timeoutSec": 30,
   "connectionDraining": {
     "drainingTimeoutSec": [CONNECTION_TIMEOUT_SECS]
   }
}

em que:

  • [PROJECT_ID] é o ID do projeto dessa solicitação;
  • [BACKEND_SERVICE] é o serviço de back-end dessa solicitação;
  • [CONNECTION_TIMEOUT_SECS] é o tempo em segundos que será aguardado antes de as instâncias serem removidas do grupo de instâncias, entre 1 e 3.600 segundos, inclusive. Esse tempo limite se aplica a todos os grupos de instâncias que fazem parte do serviço de back-end.

A seguir

Para informações gerais sobre os serviços de back-end, consulte Serviços de back-end.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…