servicios servicio para jsmooth iniciar hacer ejecutar crear con como aplicacion java jboss jndi hornetq

java - jsmooth - Pasos para hacer un servicio JNDI HornetQ existente como HA?



jsmooth youtube (1)

Con la arquitectura descrita me parece difícil, porque de hecho necesitas reconfigurar al esclavo como maestro y luego tendrás una interrupción.

HornetQ HA se proporciona a través de un par de respaldo en vivo y el equilibrio de carga se proporciona a través de un clúster.

Si desea tanto HA como equilibrio de carga, necesitará 2 pares de copias de seguridad en vivo agrupados.

Fuente: https://developer.jboss.org/thread/254232

Puede hacer referencia al maestro no por el nombre de host, sino usando una dirección IP virtual , de modo que en caso de que el maestro esté inactivo, puede volver a configurar uno de los esclavos como maestro e iniciar la IP virtual para que no tenga que volver a configurar el resto de los esclavos (Para mantener HA incluso cuando el maestro está inactivo, desea tener 2 esclavos, de modo que pueda reiniciar uno de ellos como maestro y aún se esté ejecutando uno).

Otra forma de lograr el mismo resultado es con un nombre de host DNS específico para el maestro que puede reconfigurar para que apunte a una IP diferente si un host está inactivo. Dado que el DNS está en caché, estas entradas deberían estar mejor en el archivo ''hosts''.

Si 3 hosts por dominio HA es demasiado hardware, puede lograr esto más fácilmente con servidores virtuales sin la necesidad de comprar más hardware.

TL; DR

¿Cuáles son los pasos para configurar un servicio HA-JNDI con una configuración HornetQ? Creo que la documentación está un poco dispersa. He leído los documentos here pero no parece ilustrar en detalle.

Versión más larga:

Entonces tenemos una configuración HornetQ JMS junto con JNDI. Tenemos 5 servidores que ejecutan la instancia maestra HornetQ JMS con servicio JNDI en cada uno. En cada uno de estos 5 servidores, también tenemos un esclavo ejecutándose para algún otro maestro HornetQ.

Para ilustrar:

Server A - HornetQa_master, JNDI, HornetQb_slave Server B - HornetQb_master, JNDI, HornetQc_slave Server C - HornetQc_master, JNDI, HornetQd_slave Server D - HornetQd_master, JNDI, HornetQe_slave Server E - HornetQe_master, JNDI, HornetQa_slave

Cada uno de estos servidores HornetQ sirve como middleware para nuestras diversas necesidades de back-end, lo que significa 5 servidores, 5 instancias maestras de HornetQ, 5 instancias esclavas de HornetQ y 5 servidores JNDI. Sin embargo, el problema con esta configuración es que si un servidor host (no solo el proceso, el host en sí), dice A, se cae, idealmente el servicio debería recurrir al HornetQ que se ejecuta en el servidor E que aloja el esclavo HornetQ de A. Sin embargo, para continuar como maestro HornetQ, HornetQa_slave necesita hablar con el proceso JNDI que se ejecuta en el servidor A (supongo que replica los mensajes). Como el host A está inactivo, el HornetQa_slave que se ejecuta en E no tiene forma de hablar con el JNDI en A y, por lo tanto, no puede reanudarse como el proceso maestro.

Si el servicio JNDI hubiera estado altamente disponible, el proceso esclavo HornetQ podría reanudarse como maestro como se esperaba. ¿Podría alguien señalar amablemente los documentos o ilustrar en pasos simples cómo podríamos convertir nuestra configuración existente en un HA-JNDI? Por lo que vale, he leído varias here , pero no parece ilustrar con mucho detalle cómo comenzar a configurar un HA-JNDI. Avíseme si necesita más información sobre nuestra configuración actual.