
Leading the Way: Payara Platform Community 7 Beta Now Fully Jakarta EE 11 Certified
We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]
Avanzando más nuestra serie de blogs de introducción, esta entrada mostrará como puedes escalar de forma dinámica tu cluster, y como Payara Server maneja la conmutación por fallas entre miembros del cluster.
See here for the original version in English language.
La conmutación por fallas es la habilidad de continuar proporcionando acceso a nuestro sitio web o aplicación en el caso de que un servidor falle. Es una parte importante de un servicio que goza de alta disponibilidad, cuyo objetivo es minimizar los tiempos de inactividad a lo largo de tu infraestructura de servicios.
Para seguir esta entrada del blog tal y como está escrito, necesitarás:
Como anteriormente, el primer paso es crear un nodo SSH en nuestra nueva máquina. Para más detalles acerca de los nodos SSH, y porqué vamos a utilizar uno aquí, lee este blog. Para detalles sobre cómo configurar un nodo SSH en nuestra nueva máquina, dirígete a nuestro anterior blog sobre configurar un simple cluster con Payara Server.
Como puedes ver, hemos añadido un tercer nodo SSH llamado de forma apta “computer3”.
Como este nodo será parte de nuestro cluster existente, lo enlazaremos de nuevo con la configuración de nuestro cluster que creamos en el blog anterior. Esta es otra ventaja de utilizar la configuración centralizada de antes; los nuevos nodos recibirán automáticamente la misma configuración de aquellos que ya están en el cluster, minimizando el trabajo que necesitaremos hacer para nuestras nuevas instancias.
Ahora tenemos tres instancias, con nuestra “third-Ubuntu-host-instance” recién creada y con la misma configuración asignada que las otras dentro de nuestro cluster.:
Como la configuración del cluster tiene Hazelcast habilitado, el momento en que iniciemos esta instancia debe unirse a nuestro cluster. Antes de iniciar la instancia, desplegaremos nuestra aplicación de prueba y añadiremos algunos datos de sesión
Nuevamente utilizaremos nuestra aplicación de ejemplo rest-jcache que utilizamos en el blog anterior. Esta aplicación es un servicio REST simple que utiliza la caché distribuida para almacenar los datos recibidos. Al entregar datos asociados con una llave, podemos recuperar exactamente los mismos datos de otro miembro del cluster, siempre y cuando utilicemos la misma llave en la petición enviada. Prepara y construye la aplicación, a menos que aun tengas el archivo WAR ya preparado en el blog anterior, con el comando “mvn clean install”, y despliégalo en las tres instancias. Asegúrate de que marcas la opción “Availability” para habilitar el servicio de alta disponibilidad:
Ahora que tenemos la aplicación desplegada en las tres instancias miembros de nuestro cluster (aunque sólo dos están encendidas), comprobemos de nuevo que Hazelcast está habilitado:
Ahora que tenemos nuestras dos instancias originales en ejecuciónen ejecución, repasaremos los pasos tomados en nuestro blog anterior:
Primero, vamos a recuperar la llave por defecto de la aplicación (para tener algo para comparar nuestro valor establecido posteriormente) con la siguiente petición curl a la instancia local:
curl "<Local Host>:<Local Instance Port>/<Application Path>?key=payara"
Así que, el valor predeterminado que deberíamos estar buscando es “helloworld”. Ahora que tenemos nuestro valor predeterminado, debemos agregar un valor actual para nuestra llave en nuestra máquina local con el siguiente comando:
Hazelcast está habilitado, y nuestra aplicación está configurada para JCache, por lo que ahora podemos verificar que nuestras instancias compartan correctamente su caché enviando nuestra solicitud de curl anterior hacia nuestro segundo nodo; si funciona, en lugar de “helloworld” deberíamos recibir “badassfish”:
curl “<Segunda Máquina>:<Puerto Segunda Máquina>/<Puerto Aplicación>?key=payara”
Afortunadamente también has obtenido el resultado (esperado) “badassfish”. Si no es así, comprueba que las direcciones IP han sido configuradas correctamente, Hazelcast se encuentre habilitado y ¡que no hayas iniciado las pruebas de conmutación por fallas antes de tiempo!
Ahora que hemos confirmado que nuestro cluster inicial está funcionando como esperamos, podemos avanzar a nuestras nuestras pruebas de conmutación por fallas.
Volvamos a la consola de administración e iniciemos nuestra tercera instancia:
Si deseas estar tranquilo, puedes verificar que la instancia se haya unido al cluster de Hazelcast consultando la pestaña Miembros del cluster de Hazelcast:
Ahora que nuestro tercer miembro se ha unido al cluster, simulemos un evento de conmutación por fallas desconectando los cables de alimentación o apagando nuestras primeras dos máquinas:
Una vez que se haya recuperado del cierre inesperado, reinicia tus instancias:
Y ahora que hemos implementado por completo nuestro plan de recuperación de desastres y reiniciado nuestras máquinas, revisaremos nuevamente el caché de la segunda instancia para confirmar que nuestros datos todavía están disponibles con el siguiente comando:
curl "<Segunda Máquina>:<Puerto Segunda Máquina>/<Puerto Aplicación>?key=payara"
Afortunadamente, como puedes ver, nuestros datos se almacenaron en caché de forma segura y, por lo tanto, pudieron conmutarse o redirigirse a causa del fallo, preservando los datos en la cache del cluster, ya que este retornó a nuestro valor original. Este es un ejemplo simple del almacenamiento en caché de Hazelcast dentro de Payara Server, pero demuestra tanto el principio de conmutación por fallos como los beneficios del alojamiento con alta disponibilidad, ya que pudimos agregar dinamicamente nuevas instancias a nuestro cluster y permitir que ellas mismas coordinen la cache entre ellas sin ningún tipo de intervención de usuario. En un entorno de producción, esto puede servir para conservar los datos almacenados en caché a través de múltiples sitios, y permitir que los usuarios continúen accediendo a las aplicaciones en caso de eventos de baja de sistema inesperados, además de permitirte un escalamiento dinámico de tu infraestructura.
Como de costumbre, si tienes algún comentario, pregunta o sugerencia, ¡no dudes de publicarlo en nuestra sección de comentarios!
See here for the original version in English language.
{{cta(‘a591925d-60f3-4d12-9da6-6123459ccf71’)}}
We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]
Enterprise Java applications power global commerce, healthcare, government and countless other industries. These systems must be scalable, secure and […]
With Jakarta EE 11 now officially released, you are likely eager to explore its new capabilities but setting up your first application […]
Thank you for awesome blog. I followed each and every step. and it is successful.
Such a very useful article. Very interesting to read this.I would like to thank you for the efforts you had made for writing this awesome article.