Ich habe einen udp-Server, der ein zentraler Bestandteil meines Geschäftsprozesses ist. Um die Lasten zu bewältigen, die ich in der Produktionsumgebung erwarte, benötige ich wahrscheinlich 2 oder 3 Instanzen des Servers. Der Server ist fast vollständig zustandslos, er sammelt meistens Daten und die darüber liegende Schicht weiß, wie mit der minimalen Menge veralteter Daten umzugehen ist, die aus den mehreren Serverinstanzen entstehen können.
Meine Frage ist, wie kann ich den Lastenausgleich zwischen den Servern implementieren? Ich würde es vorziehen, die Anfragen so gleichmäßig wie möglich auf die Server zu verteilen. Ich hätte auch gerne eine gewisse Wiedergabetreue. Ich meine, wenn Client X an Server y weitergeleitet wurde, möchte ich, dass alle nachfolgenden Anforderungen von X an Server Y gesendet werden, solange dies sinnvoll ist und Y nicht überlastet.
Übrigens ist es ein .NET-System ... was würden Sie empfehlen?
Der Status ist intern auf den Servern und keine Transaktion. Der Status besteht aus einigen Daten, die die Server aus den empfangenen Daten aggregieren, und kann mit einem einfachen WCF-WebService analysiert werden. Die Anwendung basiert auf UDP, und obwohl ich der Entscheidung nicht zustimme, ist sie "Über meiner Gehaltsstufe".
Ich probiere gerade die NLB von MS aus, sie funktioniert einwandfrei, sie macht die Wiedergabetreue sofort, aber sie erzeugt Rauschen im gesamten Netzwerk ...
Auch kein DNS ... Oh und es ist ein komplett Kostümprotokoll.