Clustering esempio

L’ultimo requisito dell’applicazione di esempio RubricaWeb è il suo schieramento in un cluster di nodi JBoss.

Il Clustering permette di eseguire un applicazione su vari server in parallelo, offrendo un’unica vista ai client dell’applicazione. Il carico è distribuito tra i vari server, e se uno ha qualche problema, l’applicazione è comunque accessibile tramite gli altri nodi.

Il Clustering è di vitale importanza per le applicazioni enterprise scalabili. E’ possibile ad esempio aumentare la performance semplicemente aggiungendo altri nodi al cluster. JBoss supporta il Clustering lanciando l’Application Server nella configurazione All che include:

  • Implementazione di JNDI (HA-JNDI);
  • Integrazione con load balacers hardware e software;
  • HTTP Session Replication
  • EJB session bean Clustering
  • Cache distribuita per JPA/Hibernate

La comunicazione e la scoperta automatica fra i vari nodi avviene sfruttando la libreria JGroup ed in particolare un JGroup Channel.

Per creare due nodi JBoss è stata eseguita una copia della cartella server/all e le due cartelle sono state rinominate in node1 e node2. Per lanciare le due istanze sulla stessa macchina per formare un cluster questi sono i comandi da utilizzare:

In questo contesto di clustering (con due istanze attive sulla stessa macchina) occorre specificare un id univoco per ognuna e modificare il set delle porte su per non creare conflitti. Lanciando le istanze su host diversi nella stessa rete invece è possibile mantenere il setting di default delle porte.

Per configurare le Web Application occorre inserire l’elemento distributable nel file web.xml della cartella WEB-INF del modulo Web e l’annotazione @clustered nel codice dei session bean utilizzati nel modulo EJB. Nel prossimo articolo vedremo come sia possibile configurare un meccanismo di load balancing mediante il mod_jk di Apache.

Leave a Comment

Your email address will not be published.

*