JBoss 3.x supporte le load-balancing (répartition de charges) et le fail-over (reprise sur plantage) ce que l’on regroupe sous le terme ‘clustering’.
Les caractéristiques de JBoss:
- Découverte automatique: les serveurs JBoss se découvrent mutuellement.
- Fail-over et load-balancing pour JNDI,RMI,Entity Beans,Stateful Session Beans avec recopie des états en mémoire, Stateless Session Beans.
- Support de la répartition de charges des sessions HTTP grace à Tomcat ou Jetty.
- Support des load-balanceurs matériels CISCO en frontal pour la partie HTTP
- Découverte automatique des serveurs JNDI
- Farming / Fermes de serveurs JBoss : cela permet d’auto déployer une webapp sur un ensemble de serveurs JBoss.
- etc…
JBoss utilise JavaGroups (http://www.javagroups.com) une API qui permet de créer des groupes de processus Java qui communiquent entre eux via multicast ou TCP. Cette API permet de définir des partitions qui dialoguent entre elles pour se tenir informées de leur état. C’est un peu similaire à Tibco Rendezvous, mais cette API est orientée gestion de groupes de JVM et n’est pas destinée à échanger des messages comme avec Tibco RV.
Si vous devez étudier sur un projet la mise en place du clustering pour JBoss, je vous conseille d’acheter la documentation « JBoss Clustering » rédigée par S.Labourney et B.Burke. Elle est disponible sur le site de Jboss.