Balanceig de Càrrega d’Aplicacions Web i Replicació de Sessions en memòria amb Tomcat i Apache
Escrit per David Valcárcel Romeu a Aplicacions WebLa combinació de Tomcat, Apache i mod_jk pot ser una bona opció per a una solució escalable i robusta per a aplicacions web basades en JSPs / Servlets.
Escalabilitat i tolerància a caigudes de sessió HTTP es poden aconseguir d’una manera senzilla amb un contenidor lleuger de servlets com Tomcat, que ofereix funcionalitats de grup (clúster).
El Balanceig de càrrega s’aconsegueix mitjançant el mòdul mod_jk Apache, que distribueix les peticions HTTP amb un simple mecanisme round robin a través del protocol AJP.
(mod_jk sembla ser el millor i més estès connector Tomcat - Apache)
A fi d’oferir una tolerància a fallades de la sessió HTTP (evitar la pèrdua de la sessió HTTP en cas de caiguda de la instància de Tomcat on es va crear la sessió), la replicació de sessions pot ser utilitzada.
Tomcat pot compartir sessions a través d’una base de dades, un arxiu o en memòria.
L’arquitectura global es podria resumir de la forma següent:
Tomcat utilitza un mecanisme molt simple d’agrupació (clustering):
L’agrupació de membres s’estableix utilitzant pings multicast. Una vegada que un ping multicast és rebut, el membre és agregat a l’agrupació. Quan es produeix la pròxima sol•licitud de replicació, la instància que va enviar la petició utilitzarà la informació de host i port per establir un socket TCP. Les dades de sessió són llavors serialitzades i enviades a través del socket.
És possible establir un primer punt de partida per a aquesta arquitectura de forma ràpida i senzilla, com es mostra a continuació, usant el servidor HTTP Apache 2.2.11, el mòdul mod_jk 1.2.28, Apache Tomcat 6.0.18 i Mac OS X 10.5 .6 (Darwin 9.6.0).
En aquest exemple, un Servidor Apache HTTP aplicarà un balanceig de càrrega entre dues instàncies de Tomcat, a través del mòdul mod_jk.
Tags: Servidor HTTP Apache, Apache Tomcat, Balanceig de Càrrega, mod_jk, Tolerància a Fallides de Sessió, Replicació de Sessió, Aplicacions Web
