O que é balanceamento de carga? | Como funcionam os balanceadores de carga

O balanceamento de carga é o processo de distribuição de tráfego entre vários servidores para melhorar a performance e a confiabilidade de um serviço ou aplicativo.

Objetivos de aprendizado

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

  • Definir balanceamento de carga
  • Explicar as duas principais categorias de algoritmos de balanceamento de carga
  • Entender conceitos importantes de balanceamento de carga, como monitoramento de servidor e failover

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

Aumente o desempenho do site com o Cloudflare Pro e nossos complementos de ferramentas de velocidade

O que é Balanceamento de Carga?

Imagem de balanceamento de carga

Balanceamento de carga é a prática de distribuir cargas de trabalho computacionais entre dois ou mais computadores. Na internet, o balanceamento de carga é frequentemente empregado para dividir o tráfego de rede entre vários servidores. Isso reduz a sobrecarga em cada servidor e torna os servidores mais eficientes, acelerando a performance e reduzindo a latência. O balanceamento de carga é essencial para que a maioria dos aplicativos da internet funcione corretamente.

Sem balanceamento de carga - o servidor fica sobrecarregado, o serviço fica lento Com balanceamento de carga - a carga de trabalho é distribuída uniformemente

Imagine uma fila nos caixas de um supermercado com 8 caixas, sendo que apenas um deles está aberto. Todos os clientes devem entrar na mesma fila e, portanto, levará muito tempo para que um cliente termine de pagar por suas compras. Agora imagine que a loja, em vez disso, abra todos os 8 caixas. Neste caso, o tempo de espera para os clientes será cerca de 8 vezes menor (dependendo de fatores como a quantidade de produtos que cada cliente comprar).

O balanceamento de carga realiza essencialmente a mesma coisa. Ao dividir as solicitações dos usuários entre vários servidores, o tempo de espera do usuário fica muito reduzido. Isto resulta em uma melhor experiência do usuário — os clientes do supermercado, no exemplo acima, provavelmente procurariam um supermercado mais eficiente se eles sempre experimentassem longos tempos de espera.

Como funciona o balanceamento de carga?

O balanceamento de carga é tratado por uma ferramenta ou aplicativo chamado balanceador de carga. Um balanceador de carga pode ser baseado em hardware ou baseado em software. Os balanceadores de carga de hardware requerem a instalação de um dispositivo de balanceamento de carga dedicado; balanceadores de carga baseados em software podem ser executados em um servidor, em uma máquina virtual ou em nuvem. Redes de distribuição de conteúdo (CDN) geralmente incluem recursos de balanceamento de carga.

Quando chega uma solicitação de um usuário, o balanceador de carga atribui a solicitação a um determinado servidor e esse processo se repete para cada solicitação. Os balanceadores de carga determinam qual servidor deve tratar cada solicitação com base em vários algoritmos diferentes. Esses algoritmos se dividem em duas categorias principais: estáticos e dinâmicos.

Algoritmos de balanceamento de carga estático

Os algoritmos de balanceamento de carga estático distribuem cargas de trabalho sem levar em consideração o estado atual do sistema. Um balanceador de carga estático não saberá quais servidores estão com performance lenta e quais servidores não estão sendo usados o suficiente. Em vez disso, ele atribui cargas de trabalho com base em um plano predeterminado. O balanceamento de carga estático é rápido de configurar, mas pode resultar em ineficiências.

Voltando à analogia acima, imagine se supermercado com 8 caixas abertos tem um funcionário cujo trabalho é direcionar os clientes para as filas. Imagine que esse funcionário simplesmente vá em ordem, atribuindo o primeiro cliente ao caixa 1, o segundo cliente ao caixa 2 e assim por diante, sem olhar para trás para ver a rapidez com que as filas estão se movendo. Se todos os 8 caixas tiverem um desempenho eficiente, esse sistema funcionará bem — mas se um ou mais caixas estiverem atrasados, algumas filas podem ficar muito mais longas do que outras, resultando em experiências ruins para o cliente. O balanceamento de carga estático apresenta o mesmo risco: às vezes, os servidores individuais ainda podem ficar sobrecarregados.

DNS round-robin e balanceamento de carga aleatório do lado do cliente são duas formas comuns de balanceamento de carga estático.

Algoritmos de balanceamento de carga dinâmico

Os algoritmos de balanceamento de carga dinâmico levam em consideração a disponibilidade, carga de trabalho e integridade atuais de cada servidor. Eles podem transferir o tráfego de servidores sobrecarregados ou com baixa performance para servidores subutilizados, mantendo a distribuição uniforme e eficiente. No entanto, o balanceamento de carga dinâmico é mais difícil de configurar. Vários fatores diferentes influenciam a disponibilidade do servidor: a integridade e a capacidade geral de cada servidor, o tamanho das tarefas que estão sendo distribuídas e assim por diante.

Suponha que o funcionário do supermercado que separa os clientes nas filas do caixa use uma abordagem mais dinâmica: o funcionário observa as filas cuidadosamente, vê quais estão se movendo mais rápido, observa quantos produtos cada cliente está comprando e designa os clientes de acordo. Isso pode garantir uma experiência mais eficiente para todos os clientes, mas também sobrecarrega mais o funcionário de triagem de filas.

Existem vários tipos de algoritmos de balanceamento de carga dinâmico, incluindo conexão mínima, conexão mínima ponderada, balanceamento de carga baseado em recursos e baseado em geolocalização.

Onde o balanceamento de carga é usado?

Conforme discutido acima, o balanceamento de carga é frequentemente usado com aplicativos web. Os balanceadores de carga baseados em software e em nuvem ajudam a distribuir o tráfego da internet uniformemente entre os servidores que hospedam o aplicativo. Alguns produtos de balanceamento de carga na nuvem podem equilibrar as cargas de tráfego da internet entre servidores espalhados pelo mundo, um processo conhecido como balanceamento de carga global de servidores (GSLB)

O balanceamento de carga também é comumente usado em grandes redes localizadas, como aquelas em um data center ou um grande complexo de escritórios. Tradicionalmente, isso exigia o uso de dispositivos de hardware, como um controlador de entrega de aplicativos (ADC) ou um dispositivo de balanceamento de carga dedicado. Os balanceadores de carga baseados em software também são usados para essa finalidade.

O que é monitoramento de servidor?

Os balanceadores de carga dinâmicos devem estar cientes da integridade do servidor: seu status atual, sua performance etc. Os balanceadores de carga dinâmicos monitoram os servidores realizando verificações regulares de integridade do servidor. Se um servidor ou grupo de servidores estiver com performance lenta, o balanceador de carga distribuirá menos tráfego para ele. Se um servidor ou grupo de servidores falhar completamente, o balanceador de carga redirecionará o tráfego para outro grupo de servidores, um processo conhecido como "failover".

O que é failover?

O failover ocorre quando um determinado servidor não está funcionando e um balanceador de carga distribui seus processos normais para um servidor secundário ou grupo de servidores. O failover do servidor é crucial para a confiabilidade: se não houver backup, uma falha no servidor pode derrubar um site ou aplicativo. É importante que o failover ocorra rapidamente para evitar uma lacuna no serviço.

Saiba mais sobre os diferentes aspectos do balanceamento de carga:

Perguntas frequentes

O que é Balanceamento de Carga?

O balanceamento de carga é a prática de distribuir o tráfego de rede ou as cargas de trabalho computacionais entre vários servidores para melhorar o desempenho e a confiabilidade de um aplicativo.

O que é um balanceador de carga?

Um balanceador de carga é uma ferramenta ou aplicativo, seja baseado em hardware ou software, que distribui cargas de trabalho e tráfego entre vários servidores.

Qual é a diferença entre algoritmos de balanceamento de carga estática e dinâmica?

Os algoritmos de balanceamento de carga estática atribuem tráfego com base em um plano predeterminado, sem considerar o estado do servidor, enquanto os algoritmos dinâmicos ajustam a distribuição de tráfego em tempo real com base na saúde e no desempenho do servidor.

O que é monitoramento de servidor no balanceamento de carga?

O monitoramento do servidor envolve a verificação regular da integridade e do desempenho dos servidores para que o balanceador de carga possa distribuir o tráfego com eficiência e evitar a sobrecarga de servidores com problemas.

O que é failover no balanceamento de carga?

Failover é o redirecionamento automático de tráfego para servidores de backup quando um servidor primário falha, garantindo uma disponibilidade quase contínua do serviço.

Como o balanceamento de carga melhora o desempenho?

O balanceamento de carga reduz a sobrecarga em cada servidor, tornando-os mais eficientes e ajudando a garantir que todos os usuários não fiquem presos esperando por respostas do mesmo servidor (ou conjunto de servidores). Isso acelera os tempos de resposta e reduz a latência, resultando em um serviço mais rápido e eficiente para os usuários.

Quais são os métodos comuns de balanceamento de carga?

Os métodos comuns incluem DNS round-robin, DNS round-robin ponderado, menor número de conexões, menor número de conexões ponderadas e balanceamento de carga baseado em recursos.

Onde o balanceamento de carga é comumente utilizado?

O balanceamento de carga é frequentemente utilizado em aplicativos web, data centers e grandes redes para gerenciar e distribuir cargas de trabalho computacionais de maneira eficaz.

O que é balanceamento de carga global de servidores (GSLB)?

O balanceamento de carga global de servidores (GSLB) distribui o tráfego da internet entre servidores localizados ao redor do mundo, ajudando a otimizar o desempenho para os usuários, independentemente de sua localização.

Como o balanceamento de carga afeta a experiência do usuário?

O balanceamento de carga minimiza os tempos de espera e garante um serviço mais fluido e responsivo, o que proporciona uma melhor experiência para os usuários finais.