Nous implémentons une petite batterie (2 nœuds) de Tomcat installée sur deux tranches dans Azure et plaçons l'équilibreur de charge Azure à l'avant. C'est fondamentalement un équilibreur de session de round-robin, non-sticky-session.Équilibrage de charge Tomcat dans Azure
Le webapp utilise le conteneur de Tomcat géré la sécurité (authentification des formulaires, actuellement via DataSourceRealm.
En tant que l'utilisateur que prévu, contourne-robin'ed au nœud qu'ils ne sont pas authentifiés, ils obtiennent des erreurs d'authentification. J'ai fait pas mal de recherches, et il ne semble pas y avoir un seul moyen prescrit pour gérer ça ... Il a été suggéré de mettre les nœuds derrière un serveur Apache et d'utiliser mod_jk; que nous modifiions le processus d'authentification pour utiliser un cookie afin de confirmer l'authentification, que nous utilisions le clustering Tomcat:
Quel serait le moyen le plus simple pour nous d'y parvenir? Notre application n'utilise pas de sessions pour autre chose que le CMS de Tomcat. Nous préférons ne pas quitter le CMS de Tomcat, même si nous ne sommes pas opposés à la mise en place d'une implémentation JAAS si nécessaire. Mais vraiment, la seule chose que nous devons prendre en charge est l'authentification entre nœuds.
Toute aide appréciée!
EDIT: Nous avons essayé Memcached sur Azure, a obtenu les éléments suivants:
2013-07-08 21:50:55.463 INFO net.spy.memcached.MemcachedConnection: Connection state changed for [email protected]
2013-07-08 21:50:55.463 INFO net.spy.memcached.MemcachedConnection: Reconnecting due to failure to connect to {QA sa=srvr.cloud.com/1XX.1XX.1XX.1XX:11XXX, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
java.net.ConnectException: Connection timed out: no further information
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(Unknown Source)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:399)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:247)
at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:915)
Notre context.xml:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:srvr.cloud.com:11XXX"
sticky="false"
sessionBackupAsync="false"
lockingMode="uriPattern:/path1|/path2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.JavaSerializationTranscoderFactory"
/>
Copie possible: http://stackoverflow.com/questions/4708057/tomcat-clustering-in-microsoft-azure –