Nous avons une application web basée sur Java EE et fonctionnant sur une Verre de mer cluster de serveurs d'applications. Le trafic entrant sera principalement constitué de requêtes RESTful pour des représentations basées sur XML de nos ressources applicatives, mais peut-être 5 % du trafic pourrait concerner des représentations basées sur JSON ou XHTML/CSS.
Nous étudions actuellement des solutions d'équilibrage de charge pour répartir le trafic entrant entre les instances Glassfish du cluster. Nous étudions également comment décharger le cluster en utilisant memcached, une carte de hachage distribuée en mémoire dont les clés seraient les noms des ressources REST (par exemple, "/user/bob", "/group/jazzlovers") et dont les valeurs seraient les représentations XML correspondantes.
Une approche qui semble prometteuse est de faire d'une pierre deux coups et d'utiliser l'application légère et rapide nginx Serveur HTTP/proxy inverse. Nginx traiterait chaque requête entrante en regardant d'abord son URI dans memcached pour voir s'il y a une représentation XML non expirée déjà là. Si ce n'est pas le cas, nginx envoie la requête à l'une des instances Glassfish. Le module memcached de nginx est décrit dans ce bref compte-rendu .
Quelle est votre impression générale avec nginx et memcached utilisés de cette manière, dans quelle mesure êtes-vous satisfaits d'eux ? Quelles ressources vous ont été les plus utiles pour les découvrir ? Si vous les avez essayés et qu'ils n'ont pas répondu à vos besoins, pourquoi et qu'avez-vous utilisé à la place ?
Note : voici un Question connexe . Avant de connaître ServerFault, j'ai posé cette question sur StackOverflow .
Edit : Toutes les réponses ici jusqu'à présent ont été très utiles, bien qu'il n'y ait pas d'expérience directe. この回答 a fini par apparaître sur StackOverflow, et il était assez optimiste sur la configuration nginx/memcached.
0 votes
Cool, je le ferai. Nous allons probablement l'expérimenter dans le mois à venir.