Joaozava, vamos ver se consigo “clarear” alguma coisa pra vc.
Vamos supor dois tipos de aplicações:
a) Aplicação web stateless, não utiliza a sessão para nada, ou seja, recebe a requisição faz o que tem que fazer e retorna sem registrar nada na sessão.
Estratégia para balanceamento
Adotar a que deixa os servidores com o mesmo número de sessões com requisições equalizadas; ao verificar o número de sessões de um servidor deverá ter 50 sessões por exemplo o verificar o outro também deverá ter também 50.
Neste tipo de balanceamento, o balancer recebe a requisição e repassa para o servidor que tiver recebido menos requisições.
b) Aplicação web statefull, utilização a sessão para atender o usuário.
Estratégia para balanceamento
Adotar a que deixa o usuário sempre conectado no servidor que recebeu a primeira requisição, porque se a próxima requisição depender de dados contidos na sessão e ela for desviada para o outro servidor haverá um erro.
Dá para utilizar uma aplicação que utiliza sessões (b) adotando a estratégia descrita no item (a)? Sim, mas para isso temos que CLUSTERIZAR os servidores, a clasterização fará com que as sessões ao serem criadas o que for incluido nelas sejam replicados para o(s) outro(s) servidore(s).
Ponto negativo na estratégia descrita no item (b): ao ocorrer um erro o usuário será obrigado a executar o login novamente e reiniciar os procedimentos que estavam sendo executados, porque tudo o que foi feito estava na memória de um único servidor que agora não consegue mais atendê-lo.
Espero ter ajudado.
flws