O balanceamento de carga é um conceito crucial no mundo da computação distribuída. Quando a infraestrutura de TI enfrenta picos de tráfego, o balanceamento de carga garante uma distribuição uniforme e eficiente entre os servidores existentes.
O balanceamento de carga está distribuindo uma carga de trabalho ou solicitação de rede entre vários servidores ou recursos. O principal objetivo do balanceamento de carga é garantir que nenhum servidor seja sobrecarregado, o que pode levar à degradação do desempenho ou até mesmo à falha do sistema.

Ao distribuir a carga uniformemente, o balanceamento de carga ajuda a melhorar o desempenho do aplicativo, reduzir os tempos de resposta e garantir alta disponibilidade do serviço.
A importância do balanceamento de carga na infraestrutura de TI
Na infraestrutura de TI moderna, o balanceamento de carga é essencial por vários motivos:
- Escalabilidade: Com o balanceamento de carga, o sistema pode lidar com cargas de trabalho aumentadas adicionando mais servidores ou recursos conforme necessário.
- Desempenho: ao distribuir a carga de trabalho uniformemente, o balanceamento de carga ajuda a reduzir o tempo de resposta e melhorar o desempenho do aplicativo.
- Disponibilidade: o balanceamento de carga garante que, se um servidor falhar, as solicitações possam ser roteadas para o outro servidor para que o serviço permaneça disponível.
- Confiabilidade: Ao distribuir a carga entre vários servidores, o risco de falha geral do sistema é reduzido, melhorando a confiabilidade geral do sistema.
- Eficiência de recursos: o balanceamento de carga ajuda no uso mais eficiente dos recursos, garantindo que nenhum servidor fique ocioso enquanto outros estão sobrecarregados.
O que é balanceamento de carga?
O balanceamento de carga, conforme descrito na seção anterior, é uma técnica para distribuir cargas de trabalho entre vários servidores ou recursos. O objetivo é garantir que nenhum servidor seja sobrecarregado para que todos os servidores possam operar de maneira ideal e fornecer respostas rápidas aos usuários.
Aqui estão alguns conceitos básicos de balanceamento de carga:
- Servidor: Um computador que fornece um serviço ou aplicativo a um usuário.
- Cliente: o dispositivo que solicita um serviço ou aplicativo do servidor.
- Solicitação: Uma ação executada por um cliente para solicitar um serviço ou aplicativo de um servidor.
- Carga de trabalho: o número de solicitações que o servidor deve processar.
- Balanceador de carga: software ou hardware que distribui solicitações entre servidores.
Como funciona o balanceamento de carga
Um Load Balancer é um componente-chave que gerencia a distribuição de cargas de trabalho. Um balanceador de carga pode ser hardware ou software que fica entre o cliente e o servidor. Veja como o Load Balancer básico funciona:
- Aceitando Solicitações: O Load Balancer recebe solicitações de clientes que estão tentando acessar um aplicativo ou serviço.
- Análise de solicitações: o balanceador de carga analisa essas solicitações e determina quais servidores são mais adequados para lidar com essas solicitações com base em um algoritmo específico.
- Distribuindo solicitações: o Load Balancer roteia solicitações para o servidor selecionado, garantindo que a carga de trabalho seja distribuída uniformemente entre todos os servidores disponíveis.
- Monitoramento e ajuste: o balanceador de carga monitora continuamente o desempenho e o status de cada servidor. Se um dos servidores falhar ou ficar sobrecarregado, o Load Balancer poderá ajustar a distribuição da carga de trabalho para garantir o desempenho ideal.
Tipos de balanceamento de carga
Hardware x software de balanceamento de carga
Hardware de balanceamento de carga
O hardware de balanceamento de carga é um dispositivo físico projetado especificamente para distribuir cargas de trabalho em uma rede. Esses dispositivos são normalmente colocados entre roteadores e servidores e podem lidar com um grande número de solicitações de forma rápida e eficiente. Alguns dos recursos e vantagens do Hardware de Balanceamento de Carga incluem:
- Alto desempenho: Este hardware específico é capaz de lidar com volumes muito grandes de tráfego com baixa latência.
- Confiabilidade: por ser um dispositivo físico dedicado ao balanceamento de carga, normalmente é mais estável e confiável do que as soluções baseadas em software.
- Segurança: alguns hardwares de balanceamento de carga também vêm com recursos de segurança adicionais, como firewalls e prevenção de ataques DDoS.
- Gerenciamento centralizado: O hardware é normalmente equipado com uma interface de gerenciamento que permite um gerenciamento mais fácil e centralizado.
No entanto, o hardware de balanceamento de carga também tem algumas desvantagens:
- Alto custo: Hardware especializado pode ser bastante caro, tanto em termos de compra inicial quanto de manutenção.
- Escalabilidade limitada: adicionar capacidade geralmente requer a compra de novos dispositivos, que podem se tornar ineficientes à medida que as necessidades aumentam.
Software de balanceamento de carga
O software de balanceamento de carga é uma solução de software instalada em um servidor ou máquina virtual para distribuir cargas de trabalho. Alguns dos recursos e vantagens do software de balanceamento de carga incluem:
- Flexibilidade: As soluções de software podem ser instaladas em uma ampla variedade de tipos de hardware e podem ser facilmente configuradas conforme necessário.
- Custo mais baixo: normalmente é mais barato do que o hardware especializado, pois não requer um grande investimento em dispositivos físicos.
- Escalabilidade: é mais fácil aumentar a capacidade adicionando novas instâncias de software a servidores ou máquinas virtuais existentes.
No entanto, o software de balanceamento de carga também tem algumas desvantagens:
- Desempenho inferior: geralmente não é tão rápido quanto o hardware especializado, especialmente no tratamento de volumes muito grandes de tráfego.
- Confiabilidade: Dependendo do hardware no qual o software está instalado, que pode não ser tão robusto quanto o hardware especializado.
Balanceamento de carga sem estado vs com estado
Balanceamento de carga sem estado
O balanceamento de carga sem estado é uma abordagem na qual o balanceador de carga não armazena informações sobre o estado da sessão do usuário. Cada solicitação recebida é tratada de forma independente, independentemente das solicitações anteriores do mesmo usuário. Algumas das vantagens e desvantagens do balanceamento de carga sem estado são:
Vantagens:
- Simplicidade: a implementação é mais simples porque não há necessidade de rastrear o status da sessão.
- Escalabilidade: é mais fácil escalar porque cada solicitação é tratada de forma independente.
- Tolerância a falhas: se um Load Balancer falhar, as solicitações poderão ser facilmente roteadas para outro Load Balancer sem afetar a sessão do usuário.
Desvantagens:
- Consistência da sessão: Dificuldade em manter a consistência da sessão do usuário, o que é importante para aplicativos que exigem dados de sessão contínuos.
- Gerenciamento de sessão: requer técnicas adicionais para gerenciar sessões de usuário, como armazenar sessões em um servidor ou usar cookies.
Balanceamento de carga com estado
O balanceamento de carga com estado é uma abordagem na qual um balanceador de carga armazena informações sobre o estado da sessão do usuário. Todas as solicitações do mesmo usuário são direcionadas ao mesmo servidor para manter a consistência da sessão. Algumas das vantagens e desvantagens do balanceamento de carga Stateful são:
Vantagens:
- Consistência da sessão: garante que as solicitações do mesmo usuário sejam sempre direcionadas para o mesmo servidor, mantendo dados de sessão consistentes.
- Experiência do usuário: melhore a experiência do usuário mantendo sessões contínuas e consistentes.
Desvantagens:
- Complexidade: as implementações são mais complexas porque exigem rastreamento e armazenamento do estado da sessão.
- Escalabilidade limitada: mais difícil de escalar devido à dependência do estado da sessão.
- Tolerância a falhas: Se o Load Balancer ou o servidor que armazena o estado da sessão falhar, a sessão do usuário poderá ser interrompida ou perdida.
Técnicas de balanceamento de carga
Nesta seção, discutiremos algumas técnicas de balanceamento de carga comumente usadas, juntamente com como elas funcionam, vantagens, desvantagens e exemplos de sua aplicação.
1. Rodízio
Round robin é a técnica de balanceamento de carga mais simples . Essa técnica distribui as solicitações por sua vez para todos os servidores disponíveis, sem considerar outros fatores, como a carga de trabalho atual do servidor ou o tempo de resposta do servidor.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga seleciona o próximo servidor na lista em ordem.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Simples e fácil de implementar.
- Justo para todos os servidores.
Deficiência:
- Ele não considera a carga de trabalho atual do servidor ou o tempo de resposta do servidor.
- Um servidor mais fraco pode ser sobrecarregado se houver outros servidores mais fortes.
Exemplo de aplicação:
- Sites com tráfego estático e previsível.
- Aplicativo web simples com uma carga de trabalho balanceada entre servidores.
2. Menos conexões
Least connections é uma técnica de balanceamento de carga que seleciona o servidor com o menor número de conexões para lidar com novas solicitações. Essa técnica visa distribuir a carga de trabalho uniformemente e evitar sobrecarregar um servidor específico.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga seleciona o servidor com o menor número de conexões.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Distribua cargas de trabalho uniformemente entre servidores.
- Evite sobrecarregar determinados servidores.
Deficiência:
- Um servidor que acabou de concluir muitas solicitações ainda pode ter menos recursos do que outros servidores, mesmo que tenha menos conexões.
- Não considera o tempo de resposta do servidor.
Exemplo de aplicação:
- Aplicativos Web com cargas de trabalho dinâmicas e imprevisíveis.
- Aplicativos sensíveis a tempos de resposta, como aplicativos VoIP ou jogos online.
3. Hash de IP
O hash de IP é uma técnica de balanceamento de carga que usa o hash do endereço IP do cliente para selecionar um servidor. Essa técnica garante que todas as solicitações do mesmo cliente sejam sempre direcionadas para o mesmo servidor, o que pode melhorar o desempenho e a estabilidade da conexão.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga calcula o hash do endereço IP do cliente.
- O balanceador de carga seleciona o servidor com base no valor de hash.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Garante que todas as solicitações do mesmo cliente sejam sempre direcionadas para o mesmo servidor.
- Melhore o desempenho e a estabilidade da conexão.
- Fácil de implementar.
Deficiência:
- Se o servidor selecionado falhar, todas as solicitações do mesmo cliente falharão.
- Ele não considera a carga de trabalho atual do servidor ou o tempo de resposta do servidor.
Exemplo de aplicação:
- Um aplicativo da web com muitos usuários que costumam fazer login e logout.
- Um aplicativo da web que usa cookies para armazenar dados de sessão.
4. Menor tempo de resposta
O menor tempo de resposta é uma técnica de balanceamento de carga que seleciona o servidor com o menor tempo de resposta para lidar com novas solicitações. Essa técnica visa proporcionar a melhor experiência ao usuário, minimizando o tempo de espera.
Como funciona:
- Os balanceadores de carga medem periodicamente o tempo de resposta de cada servidor.
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga seleciona o servidor com o menor tempo de resposta.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Forneça a melhor experiência ao usuário, minimizando os tempos de espera.
- Adequado para aplicações sensíveis ao tempo de resposta.
Deficiência:
- Requer medição periódica dos tempos de resposta do servidor, o que pode aumentar a sobrecarga.
- Um servidor que acabou de concluir muitas solicitações ainda pode ter um tempo de resposta mais lento, embora tenha mais recursos.
Exemplo de aplicação:
- Aplicativos da web em tempo real, como aplicativos de negociação ou jogos online.
- Aplicativos Web críticos para o desempenho, como sites de comércio eletrônico.
5. Round Robin ponderado
O round-robin ponderado é uma técnica de balanceamento de carga que combina a técnica round-robin com pesos para cada servidor. Esse peso pode ser determinado com base em vários fatores, como capacidade do servidor, desempenho do servidor ou tipo de serviço fornecido pelo servidor.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga seleciona o próximo servidor na lista em ordem, levando em consideração o peso de cada servidor.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Distribua cargas de trabalho uniformemente entre servidores com capacidade e desempenho do servidor em mente.
- Fácil de implementar e configurar.
Deficiência:
- Requer ponderação adequada para cada servidor.
- Não considera o tempo de resposta do servidor.
Exemplo de aplicação:
- Aplicativos da Web com servidores que possuem diferentes capacidades e desempenho.
- Aplicativos da Web com diferentes tipos de serviços, como servidores Web estáticos e servidores Web dinâmicos.
6. Conexões mínimas ponderadas
As conexões mínimas ponderadas são uma técnica de balanceamento de carga que combina a técnica de conexões mínimas com os pesos de cada servidor. Esse peso pode ser determinado com base em vários fatores, como capacidade do servidor, desempenho do servidor ou tipo de serviço fornecido pelo servidor.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga seleciona o servidor com a menor relação conexão-peso.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Distribua as cargas de trabalho uniformemente entre os servidores, levando em consideração a capacidade, o desempenho e a carga de trabalho atuais do servidor.
- Evite sobrecarregar determinados servidores.
Deficiência:
- Requer ponderação adequada para cada servidor.
- A complexidade é maior do que a técnica de menos conexões.
Exemplo de aplicação:
- Aplicativos Web com servidores de capacidade e desempenho variados e cargas de trabalho dinâmicas.
- Aplicativos da Web com diferentes tipos de serviços, como servidores Web estáticos e servidores Web dinâmicos.
7. Hash de IP de origem
O hash de IP de origem é uma técnica de balanceamento de carga que usa o hash do endereço IP do cliente e os pesos do servidor para selecionar um servidor. Essa técnica garante que todas as solicitações do mesmo cliente sejam sempre direcionadas para o mesmo servidor, levando em consideração a capacidade do servidor.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga calcula o hash do endereço IP do cliente e o peso do servidor.
- O balanceador de carga seleciona servidores com base no valor de hash e no peso do servidor.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Garante que todas as solicitações do mesmo cliente sejam sempre direcionadas para o mesmo servidor.
- Melhore o desempenho e a estabilidade da conexão.
- Distribua cargas de trabalho uniformemente entre servidores, considerando a capacidade do servidor.
Deficiência:
- Se o servidor selecionado falhar, todas as solicitações do mesmo cliente falharão.
- A complexidade é maior do que a técnica de hash IP.
Exemplo de aplicação:
- Um aplicativo da web com muitos usuários que costumam fazer login e logout.
- Um aplicativo da web que usa cookies para armazenar dados de sessão.
- Aplicativos da Web com servidores com capacidades diferentes.
8. Hash de URL
O hash de URL é uma técnica de balanceamento de carga que usa o hash de uma solicitação de URL para selecionar um servidor. Essa técnica garante que todas as solicitações para a mesma URL sejam sempre direcionadas para o mesmo servidor, o que pode melhorar o desempenho e a estabilidade do cache.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga calcula o hash da URL da solicitação.
- O balanceador de carga seleciona o servidor com base no valor de hash.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Certifique-se de que todas as solicitações para a mesma URL sejam sempre direcionadas para o mesmo servidor.
- Melhore o desempenho e a estabilidade do cache.
- Fácil de implementar.
Deficiência:
- Se o servidor selecionado falhar, todas as solicitações para a mesma URL falharão.
- Ele não considera a carga de trabalho atual do servidor ou o tempo de resposta do servidor.
Exemplo de aplicação:
- Aplicativos da Web com muito conteúdo estático, como imagens, vídeos e arquivos JavaScript.
- Um aplicativo Web que usa cache para acelerar o tempo de carregamento da página.
- Aplicação web com CDN (Content Delivery Network) integrado.
9. Balanceamento de carga do servidor global (GSLB)
O GSLB (Balanceamento de Carga do Servidor Global) é uma técnica de balanceamento de carga que distribui cargas de trabalho entre servidores localizados em várias localizações geográficas. Essa técnica visa melhorar o desempenho e a disponibilidade de aplicativos da Web para usuários em todo o mundo, minimizando a latência e maximizando a taxa de transferência.
Como funciona:
- O GSLB recebe solicitações de clientes.
- O GSLB determina a localização geográfica do cliente.
- O GSLB seleciona o servidor mais próximo da localização geográfica do cliente com base em vários fatores, como latência, largura de banda e carga de trabalho do servidor.
- O GSLB envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Melhore o desempenho e a disponibilidade de aplicativos da Web para usuários em todo o mundo.
- Minimize a latência e maximize a taxa de transferência.
- Melhore a experiência do usuário minimizando o tempo de carregamento da página.
Deficiência:
- A complexidade é maior do que as técnicas tradicionais de balanceamento de carga.
- Requer infraestrutura e configurações mais complexas.
- O custo de implementação e operação é maior.
Exemplo de aplicação:
- Uma empresa multinacional com sites e aplicativos da web usados por usuários em todo o mundo.
- Provedor de serviços de streaming de vídeo com um CDN integrado.
- Uma plataforma global de e-commerce com tráfego de vários países.
10. Aleatório com duas opções
Aleatório com duas opções é uma técnica de balanceamento de carga que seleciona aleatoriamente um servidor de dois servidores disponíveis. Essa técnica é simples e fácil de implementar, mas menos ideal do que outras técnicas.
Como funciona:
- O balanceador de carga recebe uma solicitação do cliente.
- O balanceador de carga escolhe um dos dois servidores disponíveis aleatoriamente.
- O balanceador de carga envia uma solicitação ao servidor selecionado.
- O servidor processa a solicitação e envia a resposta ao cliente.
Excesso:
- Simples e fácil de implementar.
- Nenhuma configuração complexa é necessária.
Deficiência:
- Menos ideal do que outras técnicas.
- Ele não considera a carga de trabalho atual do servidor ou o tempo de resposta do servidor.
- As chances de um dos servidores ficar sobrecarregado são maiores.
Exemplo de aplicação:
- Aplicativos da Web estáticos e de baixo tráfego.
- Site simples com carga de trabalho equilibrada.
- Cenários de teste ou desenvolvimento.
Estudo de caso da aplicação de técnicas de balanceamento de carga
Estudo de caso 1: grande comércio eletrônico
Contexto: Uma grande empresa de comércio eletrônico enfrentou desafios para lidar com um aumento no tráfego durante a temporada de férias. Esses picos fazem com que os servidores fiquem sobrecarregados com frequência, resultando em longos tempos de resposta e experiências ruins para o usuário.
Solução: A empresa decidiu implementar o balanceamento de carga usando uma combinação de conexões mínimas e round robin ponderado.
- O Least Connections é usado para lidar com o tráfego diário regular, garantindo que as solicitações sejam roteadas para o servidor que tem menos conexões ativas. Ajuda a distribuir a carga de trabalho uniformemente durante os períodos normais.
- O Weighted Round Robin é usado durante o pico de tráfego durante a temporada de férias, onde os servidores com maior capacidade recebem mais peso para receber mais solicitações.
Resultados: Ao usar essas duas técnicas, as empresas podem lidar com picos de tráfego sem problemas, melhorar os tempos de resposta e manter uma boa experiência do usuário. As vendas durante a temporada de férias aumentaram significativamente devido a um site estável e responsivo.
Estudo de caso 2: Provedor de serviços de streaming
Contexto: Os provedores de serviços de streaming de vídeo enfrentam desafios para fornecer uma experiência de usuário consistente devido a grandes variações no tamanho da transação e no tempo de processamento.
Solução: A empresa implementa o balanceamento de carga usando o menor tempo de resposta.
- O Menor Tempo de Resposta garante que as solicitações de vídeo sejam roteadas para o servidor que tem o menor tempo de resposta no momento em que a solicitação é recebida. Isso ajuda a reduzir a latência e garantir uma experiência de visualização tranquila para os usuários.
Resultado: Ao direcionar as solicitações para os servidores mais responsivos, as empresas podem melhorar a qualidade do streaming e reduzir o buffer. Isso aumenta a satisfação do cliente e reduz as taxas de rotatividade.
Exemplos reais de empresas que usam balanceamento de carga
1. Amazon Web Services (AWS)
A AWS é um dos maiores provedores de serviços de nuvem do mundo que usa uma variedade de técnicas de balanceamento de carga para gerenciar sua vasta infraestrutura. A AWS oferece serviços como o Elastic Load Balancing (ELB), que pode distribuir o tráfego de aplicativos em várias instâncias do Amazon EC2. As técnicas Round Robin, Least Connections e IP Hash são alguns dos algoritmos que os usuários da AWS podem escolher para atender às suas necessidades.
Benefícios: a AWS usa o balanceamento de carga para garantir alta disponibilidade, desempenho ideal e fácil escalabilidade para aplicativos executados em sua nuvem.
2. Plataforma Google Cloud (GCP)
O Google Cloud Platform usa o balanceamento de carga para distribuir cargas de trabalho em seus data centers espalhados pelo mundo. O GCP oferece balanceamento de carga global que pode distribuir o tráfego em várias regiões com base em vários fatores, como latência e proximidade geográfica.
Benefícios: ao usar o balanceamento de carga global, o GCP garante que os usuários possam acessar serviços com baixa latência e alta disponibilidade, independentemente de sua localização geográfica.
3. Netflix
A Netflix, como um dos maiores serviços de streaming do mundo, depende muito do balanceamento de carga para fornecer uma experiência de streaming perfeita para seus milhões de assinantes. A Netflix usa uma variedade de técnicas de balanceamento de carga , incluindo menos conexões e menos tempo de resposta , para garantir que as solicitações do usuário sejam direcionadas ao servidor mais apropriado.
Benefícios: Com o balanceamento de carga, a Netflix pode garantir alta qualidade de streaming, reduzir o buffer e fornecer uma experiência de visualização consistente em todas as plataformas.
4. Linkedin
O Facebook usa o balanceamento de carga para gerenciar uma enorme quantidade de tráfego de bilhões de usuários ativos diariamente. Ao implementar o balanceamento de carga, o Facebook pode distribuir as solicitações dos usuários em vários data centers e servidores, garantindo que a plataforma permaneça responsiva e acessível.
Benefícios: O balanceamento de carga ajuda o Facebook a gerenciar alto tráfego, melhorar os tempos de resposta e manter a disponibilidade da plataforma, apesar dos picos repentinos de demanda.
Conclusão
A seleção da técnica correta de balanceamento de carga depende das necessidades e características de sua infraestrutura. Considere fatores como o tipo de aplicativo, tráfego, localização do usuário e orçamento ao escolher a técnica certa.
Ao entender e implementar as técnicas corretas de balanceamento de carga, bem como otimizar seu uso, as organizações podem garantir que seus aplicativos e serviços estejam sendo executados com desempenho ideal, permaneçam disponíveis para os usuários e possam lidar facilmente com o aumento das cargas de trabalho sem sofrer degradação de desempenho ou falhas no sistema.

