Eu tenho um servidor udp, é uma parte central do meu processo de negócios. para lidar com as cargas que estou esperando no ambiente de produção, provavelmente precisarei de 2 ou 3 instâncias do servidor. O servidor é quase totalmente sem estado, ele coleta principalmente dados e a camada acima sabe como lidar com a quantidade mínima de dados antigos que podem surgir das várias instâncias do servidor.
Minha pergunta é: como posso implementar o balanceamento de carga entre os servidores? Eu preferiria distribuir os pedidos da maneira mais uniforme possível entre os servidores. Eu também gostaria de ter alguma fidelidade. Quero dizer, se o cliente X foi roteado para o servidor y, quero que todas as solicitações subseqüentes de X vão para o servidor Y, desde que seja sensato e não sobrecarregue Y.
Aliás, é um sistema .NET ... o que você recomendaria?
o estado é interno nos servidores, não uma transação de algum tipo. o estado é alguns dados que os servidores agregam a partir dos dados que recebem e é variável com um simples WCS WebService. O aplicativo é baseado no UDP e, embora eu não concorde com a decisão, é "Acima do meu salário"
Atualmente, estou testando o NLB da MS, funciona bem, faz a coisa de fidelidade fora da caixa, mas gera ruído em toda a rede ...
Também não há DNS ... Ah, e é um protocolo completamente personalizado.