2010-12-06 16 views
5

¿Hay alguna forma de encontrar todos los nodos que pertenecen al clúster de la aplicación web? Sé en JBoss que puedo usar HAServiceMBeanSupport para obtener información sobre todos los nodos (nombre de host, dirección IP), pero ¿cómo puedo lograr algo similar en Tomcat, WebSpere, Glassfish, Oracle AS, Jetty, WebLogic? (Lo mejor sería una interfaz que funcione para todos ellos)¿Cómo encontrar/enumerar todos los nodos en un Application-Cluster J2EE?

Respuesta

0

Por lo que sé, depende de las capacidades de su servidor de aplicaciones.

No hay una "vía estándar" para hacer esto.

Usted puede intentar lo siguiente:

La clase ServletContextListener tiene dos métodos. Puede calcular el nombre de host y la dirección IP (es) dentro del método de creación, y eliminar el nodo en el método de destrucción.

De esta manera tiene problemas durante un choque de VM, por ejemplo, no se llamará al método de destrucción.

EDIT: ¿Su software necesita una base de datos? Si es así, todos los nodos de clúster deben usar la misma instancia de base de datos. Si su aplicación se implementa sin un clúster, utiliza una base de datos "privada". Se necesita una base de datos compartida:

Tabla: Los nodos


HOST | IP


as1.cluster | < ip>

as2.cluster | < ip2>

Si solo se inserta una línea en ese DB, no hay clúster.

Pero esta tabla puede estar dañada, si un nodo falla y no elimina su entrada de esta Tabla.

+0

hmm, pero ¿cómo puede la aplicación detectar que está en un clúster? Asumiendo que implementó la aplicación en dos máquinas que NO se ejecuta en un clúster. De todos modos, tengo problemas para encontrar una solución específica de servidor de aplicaciones para esto ... –

+0

Si se ejecutan en un clúster, tienen que compartir la misma base de datos (si se usa una base de datos). Si se ejecutan en un clúster diferente o como un solo servidor de aplicaciones, deberían usar diferentes bases de datos. Si puede usar EJB 3.1 (?) Hay un Singleton-Bean Clusterwide. –

+0

El problema es que la aplicación PUEDE implementarse en un clúster, pero no es necesario. Actualmente no lo sé cuando se compila el archivo de la aplicación, por eso trato de detectar si está agrupado o no cuando se ejecuta la aplicación. Si eso no es posible, entonces debemos hacer una configuración/configuración diferente para la aplicación en clúster (en realidad no queremos eso, ya que requiere más configuración de nuestro cliente). –

Cuestiones relacionadas