Wir haben eine Java EE-basierte Webanwendung, die auf einem Glassfish- App-Server-Cluster ausgeführt wird. Der eingehende Datenverkehr besteht hauptsächlich aus REST-konformen Anforderungen für XML-basierte Darstellungen unserer Anwendungsressourcen. Möglicherweise entfallen jedoch 5% des Datenverkehrs auf JSON- oder XHTML / CSS-basierte Darstellungen.
Wir untersuchen jetzt Lastausgleichslösungen, um eingehenden Datenverkehr auf die Glassfish-Instanzen im Cluster zu verteilen. Wir untersuchen auch, wie der Cluster mit memcached, einer im Speicher verteilten Hash-Map, entladen werden kann, deren Schlüssel die REST-Ressourcennamen sind (z. B. "/ user / bob", "/ group / jazzlovers") und deren Werte die entsprechenden XML-Darstellungen.
Ein vielversprechender Ansatz ist es, beide Fliegen mit einer Klappe zu schlagen und den leichten, schnellen Nginx- HTTP-Server / Reverse-Proxy zu verwenden. Nginx behandelt jede eingehende Anfrage, indem es zuerst den URI im Speicher nachschaut, um festzustellen, ob dort bereits eine nicht abgelaufene XML-Darstellung vorhanden ist. Wenn nicht, sendet nginx die Anfrage an eine der Glassfish-Instanzen. Das Nginx-Memcached-Modul wird in dieser kurzen Beschreibung beschrieben .
Wie ist Ihr Gesamteindruck mit Nginx und Memcached auf diese Weise, wie glücklich sind Sie mit ihnen? Welche Ressourcen fanden Sie am hilfreichsten, um mehr über sie zu erfahren? Wenn Sie sie ausprobiert haben und sie nicht Ihren Zwecken entsprachen, warum nicht, und was haben Sie stattdessen verwendet?
Hinweis: Hier ist eine verwandte Frage . Bevor ich von ServerFault wusste, fragte ich dies bei StackOverflow .
Edit: Alle Antworten hier waren bisher recht hilfreich, obwohl es keine direkten Erfahrungen gab. Diese Antwort tauchte schließlich in StackOverflow auf und war im Setup von nginx / memcached ziemlich optimistisch.