Como ativar a diminuição de conexão

Você pode ativar a diminuição da conexão em serviços de back-end para garantir uma interrupção mínima aos seus usuários quando uma instância é removida de um grupo de instâncias, manualmente ou por um autoescalador. Para isso, defina um tempo limite no qual o serviço de back-end preserva as sessões processadas pelos pontos de extremidade de uma instância que será removida. O serviço mantém essas sessões até que o tempo limite tenha decorrido e as sessões de usuário sejam encerradas, mas impede que novas conexões sejam feitas.

Após o tempo limite, a instância é encerrada e todas as conexões restantes são forçadas a fechar. Defina um tempo limite entre 1 e 3.600 segundos.

A diminuição de conexão é acionada sempre que uma instância é removida de um grupo de instâncias. Especificamente nestes 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 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.

Antes de começar

Restrições

Como ativar 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 de 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 de 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 de 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.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine