Estratégias e técnicas de balanceamento de carga que você deve conhecer para melhorar a eficiência da rede

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:

  1. O balanceador de carga recebe uma solicitação do cliente.
  2. O balanceador de carga seleciona o próximo servidor na lista em ordem.
  3. O balanceador de carga envia uma solicitação ao servidor selecionado.
  4. 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:

  1. O balanceador de carga recebe uma solicitação do cliente.
  2. O balanceador de carga seleciona o servidor com o menor número de conexões.
  3. O balanceador de carga envia uma solicitação ao servidor selecionado.
  4. 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.

Últimos artigos