Introdução ao balanceamento de carga

Lucas Gertel
3 min readApr 28, 2023

--

O balanceamento de carga é uma parte essencial de um projeto de sistema porque garante que as solicitações e o tráfego sejam distribuídas de maneira justa entre vários servidores. Ao distribuir a carga de trabalho entre vários servidores, podemos reduzir a probabilidade de qualquer um deles ficar sobrecarregado e consequentemente apresentar falhas, como o travar.

Este é um artigo que faz parte dos materiais que publico na Software Architect Academy, a maior comunidade de Arquitetos de Software do Brasil! 😀. Lá temos artigos organizados, categorizados por áreas de conhecimento, tutoriais, masterclasses e muito mais.

Um balanceador de carga é um dispositivo que fica entre um cliente e um servidor, recebendo o tráfego da rede e do aplicativo e dividindo-o em vários servidores de back-end com base em um conjunto de regras predefinidas. Os balanceadores de carga melhoram a disponibilidade e a capacidade de resposta do aplicativo distribuindo a carga de trabalho entre vários servidores para evitar sobrecarregar qualquer servidor existente e torná-lo o único ponto de falha do sistema.

Para utilizar escalabilidade e redundância, podemos tentar equilibrar a carga em cada camada do sistema. Podemos adicionar Load Balancers em três lugares:

  • Entre o usuário e o servidor web
  • Entre servidores web e uma camada de plataforma interna, como servidores de aplicativos ou servidores de cache
  • Entre os servidores de aplicativos ou de cache e os servidores de banco de dados

Definições de termos essenciais e conceitos

Load Balancer: Um dispositivo ou software que distribui o tráfego de rede em vários servidores com base em regras ou algoritmos predefinidos.

Servidores de back-end: Os servidores que recebem e processam solicitações encaminhadas pelo balanceador de carga.

Algoritmo de Balanceamento de Carga: O método usado pelo balanceador de carga para determinar como distribuir o tráfego de entrada entre os servidores de back-end.

Verificações de integridade: Testes periódicos executados pelo balanceador de carga para determinar a disponibilidade e o desempenho dos servidores de back-end. Quando um servidor fica “doente”, ele é temporariamente retirado de serviço até ser recuperado.

Persistência de sessão: Uma técnica usada para garantir que as solicitações subsequentes do mesmo cliente sejam direcionadas para o mesmo servidor de back-end, mantendo o estado da sessão e fornecendo uma experiência de usuário consistente.

Término de SSL/TLS: o processo de descriptografia do tráfego criptografado por SSL/TLS no nível do balanceador de carga, descarregando a carga de descriptografia dos servidores de back-end e permitindo o gerenciamento centralizado de SSL/TLS.

Como o balanceador de carga funciona?

Os balanceadores de carga funcionam distribuindo o tráfego de rede de entrada em vários servidores ou recursos para garantir a utilização eficiente dos recursos de computação e evitar sobrecarga. Aqui estão os traços gerais da abordagem de um balanceador de carga para gerenciamento de tráfego:

  1. O balanceador de carga recebe uma solicitação de um cliente ou usuário.
  2. O balanceador de carga avalia a solicitação recebida e determina qual servidor ou recurso deve lidar com a solicitação. Isso é feito com base em um algoritmo de balanceamento de carga predefinido que leva em consideração fatores como capacidade do servidor, tempo de resposta do servidor, número de conexões ativas e localização geográfica.
  3. O balanceador de carga encaminha o tráfego de entrada para o servidor ou recurso selecionado.
  4. O servidor ou recurso processa a solicitação e envia uma resposta de volta ao balanceador de carga.
  5. O balanceador de carga recebe a resposta do servidor ou recurso e a envia para o cliente ou usuário que fez a solicitação.

--

--

Lucas Gertel

rquiteto de Software Full Stack apaixonado por tecnologia, minha família e coisas de nerd. Adoro criar soluções inovadoras que entregam valor real aos clientes.