Wir verfügen über eine Java EE-basierte Webanwendung, die auf einem Glassfish App-Server-Cluster ausgeführt wird. Bei dem eingehenden Datenverkehr handelt es sich hauptsächlich um REST-Anfragen für XML-basierte Darstellungen unserer Anwendungsressourcen, aber möglicherweise sind 5% des Datenverkehrs für JSON- oder XHTML/CSS-basierte Darstellungen.Welche Erfahrung haben Sie mit Nginx und Memcached, um eine Website zu optimieren?
Wir untersuchen nun Load-Balancing-Lösungen, um eingehenden Datenverkehr über die Glassfish-Instanzen im Cluster zu verteilen. Wir untersuchen auch, wie der Cluster mithilfe von memcached, einer speicherintern verteilten Hash-Map, deren Schlüssel die REST-Ressourcennamen (z. B. "/ user/bob", "/ group/jazzlovers") und deren Werte sind, ausgelagert werden kann die entsprechenden XML-Darstellungen.
Ein Ansatz, der vielversprechend klingt, ist, beide Vögel mit einer Klappe zu schlagen und den leichten, schnellen HTTP-Server/Reverse-Proxy zu verwenden. Nginx würde jede eingehende Anfrage behandeln, indem sie zuerst ihren URI in memcached nach oben schaut, um zu sehen, ob dort bereits eine nicht abgelaufene XML-Darstellung vorhanden ist. Wenn nicht, sendet nginx die Anfrage an eine der Glassfish-Instanzen. Das Modul nginx memcached ist in this short writeup beschrieben.
Wie ist Ihr Gesamteindruck mit nginx und memcached auf diese Weise verwendet, wie glücklich sind Sie mit ihnen? Welche Ressourcen fanden Sie am hilfreichsten, um etwas über sie zu erfahren? Wenn du sie ausprobiert hast und sie nicht für deine Zwecke geeignet waren, warum nicht, und was hast du stattdessen benutzt?
Hinweis: Hier ist ein related question.
Update: Ich fragte später the same question auf ServerFault.com. Die Antworten dort sind hauptsächlich Alternativen zu nginx (hilfreich, aber indirekt).
Danke, das ist sehr hilfreich. –