Tipos de algoritmos de balanceamento de carga

Os balanceadores de carga decidem para onde rotear o tráfego de rede com base em um conjunto de regras predeterminadas.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir "algoritmo de balanceamento de carga"
  • Diferenciar entre algoritmos de balanceamento de carga estático e dinâmico
  • Descompactar os tipos de algoritmos dentro dessas duas categorias

Copiar o link do artigo

O que é um algoritmo de balanceamento de carga?

Um balanceador de carga é um dispositivo de software ou hardware que impede que qualquer servidor fique sobrecarregado. Um algoritmo de balanceamento de carga é a lógica que um balanceador de carga usa para distribuir o tráfego de rede entre servidores (um algoritmo é um conjunto de regras predefinidas).

Existem duas abordagens principais para balanceamento de carga. O balanceamento de carga dinâmico usa algoritmos que levam em consideração o estado atual de cada servidor e distribuem o tráfego de acordo. O balanceamento de carga estático distribui o tráfego sem fazer esses ajustes. Alguns algoritmos estáticos enviam uma quantidade igual de tráfego para cada servidor em um grupo, em uma ordem especificada ou aleatoriamente.

Quais são os diferentes tipos de algoritmos de balanceamento de carga?

Algoritmos de balanceamento de carga dinâmico

  • Menos conexões: verifica quais servidores têm menos conexões abertas no momento e envia tráfego para esses servidores. Isso pressupõe que todas as conexões exigem poder de processamento aproximadamente igual.
  • Menos conexões ponderadas: dá aos administradores a capacidade de atribuir pesos diferentes a cada servidor, assumindo que alguns servidores podem lidar com mais conexões do que outros.
  • Tempo de resposta ponderado: calcula a média do tempo de resposta de cada servidor e combina isso com o número de conexões que cada servidor abriu para determinar para onde enviar o tráfego. Ao enviar tráfego para os servidores com o tempo de resposta mais rápido, o algoritmo garante um atendimento mais rápido aos usuários.
  • Baseado em recursos: distribui a carga com base nos recursos que cada servidor tem disponível no momento. O software especializado (chamado de "agente") executado em cada servidor mede a CPU e a memória disponíveis desse servidor e o balanceador de carga consulta o agente antes de distribuir o tráfego para esse servidor.

Algoritmos de balanceamento de carga estático

  • Round robin: o balanceamento de carga round robin distribui o tráfego para uma lista de servidores em rotação usando o Domain Name System (DNS). Um nameserver autoritativo terá uma lista de diferentes registros A para um domínio e fornecerá um diferente em resposta a cada consulta DNS.
  • Round robin ponderado: permite que um administrador atribua pesos diferentes a cada servidor. Os servidores considerados capazes de lidar com mais tráfego receberão um pouco mais. A ponderação pode ser configurada em registros DNS.
  • IP hash: combina endereços de IP de origem e de destino do tráfego de entrada e usa uma função matemática para convertê-lo em um hash. Com base no hash, a conexão é atribuída a um servidor específico.

Como funciona o balanceamento de carga da Cloudflare?

O Balanceamento de Carga da Cloudflare usa verificações de integridade para direcionar o tráfego para servidores íntegros. Ele também permite que os administradores personalizem onde o tráfego regional é tratado para reduzir a quantidade de distância que o tráfego precisa percorrer. Essa abordagem é conhecida como balanceamento de carga global de servidores (GSLB).