Ao fazer ba­lan­ce­a­mento de carga (load balancing), acessos aos ser­vi­do­res podem ser dis­tri­buí­dos de forma uniforme entre di­fe­ren­tes recursos de hardware por meio de uma instância técnica chamada ba­lan­ce­a­dor de carga (load balancer). Ele garante ve­lo­ci­da­des de acesso estáveis, o que é essencial para gerar leads e atrair clientes.

VPS Hosting (Virtual Private Servers)
World-class VPS at America’s lowest price

Hos­pe­da­gem VPS poderosa e de baixo custo para rodar suas apli­ca­ções sob medida, com as­sis­tente pessoal e suporte 24 horas.

  • Save 50% or more vs leading hosts
  • Unlimited traffic & no setup fees 
  • 99.99% uptime gua­ran­teed
  • Free 24/7 premium support 

O que é load balancing?

Load balancing é es­pe­ci­al­mente popular na tec­no­lo­gia de ser­vi­do­res e descreve um pro­ce­di­mento no qual as so­li­ci­ta­ções são dis­tri­buí­das em segundo plano (sem que os usuários percebam) entre di­fe­ren­tes ser­vi­do­res. O load balancer usado pode ser im­ple­men­tado como hardware ou software. Ele atribui diversos ser­vi­do­res a um mesmo domínio sem causar conflitos de endereço, sendo acessado através do domínio público.

Os ser­vi­do­res web su­bor­di­na­dos são nomeados com os sufixos de domínio www1, www2, www3, etc. Dessa forma, o ba­lan­ce­a­mento de carga permite que um site esteja dis­po­ní­vel sob o mesmo URL, mesmo que haja vários ser­vi­do­res por trás dele. Isso evita a so­bre­carga do servidor, pois as so­li­ci­ta­ções externas são dis­tri­buí­das entre di­fe­ren­tes com­pu­ta­do­res físicos dentro do cluster. Os usuários ge­ral­mente não percebem isso, pois a dis­tri­bui­ção das so­li­ci­ta­ções ocorre com base em al­go­rit­mos complexos em segundo plano.

O load balancing também pode de­sem­pe­nhar um papel além dos ser­vi­do­res web, como em com­pu­ta­do­res que usam vários pro­ces­sa­do­res. Nesse caso, o load balancer garante que as so­li­ci­ta­ções sejam dis­tri­buí­das de maneira uniforme entre os di­fe­ren­tes pro­ces­sa­do­res, gerando assim mais poder de pro­ces­sa­mento. Também em softwares de con­têi­ne­res, como o Ku­ber­ne­tes, os load balancers são es­sen­ci­ais. Eles garantem que as cargas de trabalho sejam dis­tri­buí­das de forma eficiente entre os di­fe­ren­tes Pods.

Como funciona o load balancing?

As so­li­ci­ta­ções a um servidor web, como acessos a páginas, passam ini­ci­al­mente pelo load balancer. Este então realiza a dis­tri­bui­ção da carga, di­re­ci­o­nando o tráfego para di­fe­ren­tes ser­vi­do­res. O ba­lan­ce­a­dor de carga pode ser realizado como hardware ou software, mas o princípio permanece o mesmo: a so­li­ci­ta­ção chega ao load balancer e, de­pen­dendo do pro­ce­di­mento utilizado, o dis­po­si­tivo ou software direciona os dados para o servidor adequado.

A base técnica é o sistema DNS: os usuários acessam um site apenas por um URL. Esse URL é con­ver­tido em um endereço IP pelo DNS, que por sua vez aponta para o load balancer. Ide­al­mente, esse processo passa des­per­ce­bido pelos usuários.

Imagem: Diagrama de funcionamento de um balanceador de carga
Diagrama: Um load balancer distribui cargas de acesso dos clientes pela internet para di­fe­ren­tes ser­vi­do­res.

Quais são as vantagens do load balancing?

Os três prin­ci­pais be­ne­fí­cios de um ba­lan­ce­a­dor de carga bem im­ple­men­tado são os seguintes:

  • Tempos de acesso oti­mi­za­dos: Ao dis­tri­buir o tráfego entre vários ser­vi­do­res, é possível alcançar tempos de acesso mais rápidos, mesmo com muitas so­li­ci­ta­ções si­mul­tâ­neas.
  • Maior con­fi­a­bi­li­dade: O load balancer aumenta a segurança contra falhas, pois o tráfego de um servidor lento é au­to­ma­ti­ca­mente re­di­re­ci­o­nado para outros ser­vi­do­res no cluster. Se um servidor não estiver acessível, o site hospedado con­ti­nu­ará dis­po­ní­vel.
  • Ma­nu­ten­ção sim­pli­fi­cada do sistema: O load balancing é um grande apoio na ma­nu­ten­ção de um sistema de ser­vi­do­res. Con­fi­gu­ra­ções e atu­a­li­za­ções podem ser re­a­li­za­das durante a operação dos ser­vi­do­res, sem causar uma queda per­cep­tí­vel no de­sem­pe­nho. O load balancer detecta o estado de ma­nu­ten­ção e re­di­re­ci­ona as so­li­ci­ta­ções de maneira apro­pri­ada.

Quais são os métodos de load balancing?

Como as so­li­ci­ta­ções de entrada são dis­tri­buí­das depende da escolha do algoritmo. Al­go­rit­mos populares para o ba­lan­ce­a­mento de carga incluem: Round Robin, Weighted Round Robin, Least Con­nec­ti­ons e Weighted Least Con­nec­ti­ons.

Round Robin

Round Robin é um processo circular no qual as so­li­ci­ta­ções são ge­ren­ci­a­das em uma fila e dis­tri­buí­das se­quen­ci­al­mente entre os ser­vi­do­res dis­po­ní­veis. Cada nova so­li­ci­ta­ção é atribuída ao próximo servidor na fila. Isso permite uma dis­tri­bui­ção uniforme do tráfego dentro do cluster de ser­vi­do­res. No processo Round Robin, todos os processos são tratados igual­mente, in­de­pen­den­te­mente da urgência da so­li­ci­ta­ção ou da carga no servidor. Um load balancer que usa o princípio Round Robin é ideal para ambientes em que todas as ins­tân­cias possuem recursos apro­xi­ma­da­mente iguais.

Weighted Round Robin

Os pontos fracos do algoritmo clássico Round Robin em clusters de ser­vi­do­res he­te­ro­gê­neos podem ser com­pen­sa­das por uma versão ponderada do Round Robin. Nesse caso, as so­li­ci­ta­ções de entrada são dis­tri­buí­das com base na pon­de­ra­ção estática de cada servidor. Essa pon­de­ra­ção é definida pre­vi­a­mente pelo ad­mi­nis­tra­dor.

Por exemplo, o servidor mais potente pode ser atribuído ao valor “100”, enquanto ser­vi­do­res menos efi­ci­en­tes recebem o valor “50”. Nesse tipo de con­fi­gu­ra­ção, o servidor com o peso “100” recebe duas so­li­ci­ta­ções a cada rodada, enquanto o servidor com o peso “50” recebe uma so­li­ci­ta­ção. O Weighted Round Robin deve ser utilizado prin­ci­pal­mente quando os ser­vi­do­res no cluster possuem recursos distintos.

Least Con­nec­ti­ons

Ambos os al­go­rit­mos Round Robin não con­si­de­ram quantas conexões os ser­vi­do­res su­bor­di­na­dos devem manter por um de­ter­mi­nado período. Isso pode fazer com que um servidor acumule várias conexões e acabe so­bre­car­re­gado, mesmo que ele mantenha menos conexões que outros ser­vi­do­res. O algoritmo Least Con­nec­ti­ons resolve esse problema. Ele distribui as so­li­ci­ta­ções com base no número de conexões ativas de cada servidor: o servidor com o menor número de conexões ativas recebe a próxima so­li­ci­ta­ção do load balancer. Esse método é re­co­men­dado para clusters de ser­vi­do­res ho­mo­gê­neos, onde todos os com­pu­ta­do­res têm recursos com­pa­rá­veis.

Weighted Least Con­nec­ti­ons

Quando um cluster de ser­vi­do­res possui ca­pa­ci­da­des di­fe­ren­tes, deve-se usar um load balancing que, em vez de aplicar o algoritmo Least Con­nec­ti­ons, atue com base na dis­tri­bui­ção ponderada de acordo com as conexões exis­ten­tes. Dessa forma, leva-se em conta tanto o número de conexões ativas de um servidor quanto a pon­de­ra­ção definida pelo ad­mi­nis­tra­dor. Isso garante uma dis­tri­bui­ção equi­li­brada da carga dentro do cluster de ser­vi­do­res. Novas so­li­ci­ta­ções serão au­to­ma­ti­ca­mente atri­buí­das aos ser­vi­do­res cujo re­la­ci­o­na­mento entre conexões ativas e pon­de­ra­ção do servidor indique a menor carga atual.

Quais problemas podem surgir com o uso de load balancing?

Par­ti­cu­lar­mente no setor de e-commerce, o load balancing fre­quen­te­mente enfrenta problemas. Um exemplo: vi­si­tan­tes de um site preenchem o carrinho com itens que desejam comprar. Durante uma sessão, esses itens per­ma­ne­cem ar­ma­ze­na­dos, in­de­pen­den­te­mente da página que o visitante acessar no mercado online. Um load balancer normal, no entanto, dis­tri­bui­ria as so­li­ci­ta­ções entre di­fe­ren­tes ser­vi­do­res, o que poderia resultar na perda do conteúdo do carrinho.

Para resolver esse problema, existem duas abor­da­gens possíveis. Uma delas é fazer o load balancer reagir ao endereço IP dos usuários, ga­ran­tindo que as so­li­ci­ta­ções da mesma IP sejam sempre di­re­ci­o­na­das ao mesmo servidor. Outra opção seria ler um ID de sessão da so­li­ci­ta­ção para de­ter­mi­nar a qual servidor a so­li­ci­ta­ção deve ser enviada.

Por que load balancers são tão im­por­tan­tes?

Se você ganha dinheiro pela internet, seu negócio não pode se dar ao luxo de ter um servidor fora do ar. E se você usar apenas um servidor e ele falhar devido à so­bre­carga, seu site não estará mais acessível para os po­ten­ci­ais clientes. Isso leva a vários problemas: primeiro, você não con­se­guirá gerar receita durante a so­bre­car­re­gada, já que serviços não poderão ser agendados e compras não poderão ser feitas. Além disso, a confiança dos (po­ten­ci­ais) clientes diminui. Isso é ainda pior quando ocorre uma so­bre­carga do servidor durante o processo de compra, gerando in­se­gu­rança nos usuários que não sabem se a ordem foi re­gis­trada no sistema.

Mas mesmo que você não ofereça um serviço di­re­ta­mente pela internet, seu site deve estar sempre acessível. Ele é um dos prin­ci­pais canais para que os usuários obtenham in­for­ma­ções. Se os clientes po­ten­ci­ais pro­cu­ra­rem in­for­ma­ções sobre sua empresa e não con­se­gui­rem acessar seu site, pro­va­vel­mente irão procurar sua con­cor­rên­cia. Você pode minimizar esses riscos com um ba­lan­ce­a­dor de carga.

Como im­ple­men­tar load balancing na sua empresa

O ba­lan­ce­a­mento de carga pode ser im­ple­men­tado tanto por soluções de hardware quanto de software em um servidor virtual. Pacotes pro­fis­si­o­nais completos são dis­po­ni­bi­li­za­dos por diversos pro­ve­do­res, seja como In­fras­truc­ture-as-a-Service (IaaS) ou como um com­po­nente de rede para a própria in­fra­es­tru­tura de TI.

Como a aquisição de load balancers pro­pri­e­tá­rios ge­ral­mente envolve altos custos, empresas menores fre­quen­te­mente recorrem a soluções Open-Source como o NGINX. Este oferece uma maneira econômica de garantir alta dis­po­ni­bi­li­dade do site da sua empresa ou de outros projetos web por meio de dis­tri­bui­ção eficiente de carga dentro da rede de ser­vi­do­res. No setor de hos­pe­da­gem na web, o load balancing também é fre­quen­te­mente oferecido como um recurso adicional para ser­vi­do­res em nuvem.

Teste o VPS da IONOS grátis

Ex­pe­ri­mente seu vServer de graça agora - Teste um servidor virtual por 30 dias!

  • Recursos dedicados
  • Tráfego ilimitado
  • Consultor pessoal
Ir para o menu principal