segunda-feira, 10 de dezembro de 2012

O papa-filas e o round-robin de DNS...

Dando seqüência ao tema "balanceamento de carga", vou agora mostrar os tipos mais comuns e suas vantagens e desvantagens, de forma a suprir o leitor com subsídios para uma escolha adequada ao seu caso.



1) Balanceamento por Round-Robin de DNS

O algoritmo de "round-robin" não é nenhuma novidade para profissionais de informática. Em qualquer curso de faculdade ele é assunto freqüente.  É simplesmente uma lista, enfileirada, em que os elementos vão, um a um, assumindo certa posição. Ao chegar no último elemento, o processo reinicia com o primeiro elemento. O DNS (Domain Name System) é uma forma de traduzir endereços de sites em seus respectivos IPs, por exemplo: www.google.com.br vira 74.125.234.159. O balanceamento de carga via round-robin de DNS funciona redirecionando alternadamente o usuário para uma lista de servidores, cada vez que ele acessa a mesma URL pelo navegador. Ou seja, há mais de um IP respondendo a uma mesma URL, só que de forma alternada.

Funciona de maneira muito similar ao "papa-filas" do supermercado, onde cada cliente entra numa única fila e ao final é direcionado para uma das gôndolas de pagamento disponíveis.

Se forem três servidores de aplicação, cada vez que o usuário recarregar a página no navegador, será direcionado para um dos servidores. Se chegar no último servidor e recarregar a página, será redirecionado novamente ao primeiro servidor.

Essa é uma forma bastante simples de balanceamento, que não leva em consideração a carga de cada servidor de aplicação, ou seja, não é um balanceamento ótimo, porque uma máquina lotada vai continuar recebendo usuários. Além disso, caso uma das máquinas falhe e fique fora do ar, ela mesmo assim ainda estará participando da fila. E usuários serão redirecionados para ela assim mesmo, recebendo a mensagem de que o servidor está fora do ar. Em outras palavras, um certo grupo de usuários cairá na máquina que está ruim.

Apesar das desvantagens, é uma forma extremamente fácil de implementar e é recomendável que ela exista em conjunto com outras formas de balanceamento.

No próximo post falarei sobre balanceamento de carga por cluster.




Nenhum comentário:

Postar um comentário