Terug naar overzicht
Techblogs

GlassFish & Payara Auto-Clustering: Het uitvoeren van Jakarta EE High-Availability-applicaties in de cloud

In cloudhosting is het waarborgen van een storingsvrije 24/7 service cruciaal. Een veelgebruikte oplossing is het opzetten van een geclusterde infrastructuur. Dit artikel legt uit hoe GlassFish- en Payara auto-clustering werkt en hoe je deze kunt implementeren voor jouw Jakarta EE-toepassingen binnen Previder PaaS+.
Door: Peter Bult

Het waarborgen van een storingsvrije 24/7 service is een van de meest besproken gebieden in cloudhosting de afgelopen jaren. De meest voor de hand liggende en veelgebruikte oplossing hierbij is het bouwen van een geclusterde infrastructuur voor jouw project.

Om onze klanten te helpen hiermee om te gaan en om tijd te besparen voor andere werkzaamheden is er een speciale high-availability oplossing beschikbaar, ontworpen om het hosten van Jakarta EE-toepassingen te versimpelen: embedded Auto-Clustering voor GlassFish- en Payara servers.

Het belangrijkste voordeel van deze oplossing is de automatische verbinding van meerdere applicatieservers bij wijzigingen in de topologie van de applicatie.

Glassfish

In de meest algemene zin kan elke ‘geclusterde oplossing’ worden gedefinieerd als een reeks onderling verbonden instanties die dezelfde stack draaien en dezelfde gegevens gebruiken. Met andere woorden: dit betekent dat de bijbehorende servers horizontaal moeten worden geschaald en gebruikerssessies moeten delen.

Dit artikel beschrijft hoe GlassFish- en Payara auto-clustering werkt en hoe je de juiste ontwikkelaarsomgeving kunt opzetten en draaien binnen Previder PaaS+.

Glassfish of Payara server

Kies op het Java-tabblad van de wizard tussen de GlassFish- of Payara server. Zoek daarna in het midden van het scherm de optie Auto-Clustering en activeer de Auto-Clustering-optie. Configureer de overige instellingen naar je wensen maar zorg dat je horizontaal schalen in ieder geval inschakelt.

Auto-Clustering


Tip: De Auto-Clustering functie is ook beschikbaar voor andere software sjablonen (bijvoorbeeld MySQL, MariaDB, PostgreSQL, Tomcat/TomEE, WildFly, Shared Storage, MongoDB en Couchbase).


Afhankelijk van het doel van jouw ontwikkelaarsomgeving kun je overwegen om geen gebruik te maken van Auto-Clustering (bijvoorbeeld tijdens ontwikkeling). Dan wordt er een normale server gemaakt zonder een cluster te configureren.

Voor een productieomgeving is clustering vrijwel een verplichte optie om de hoge beschikbaarheid van je applicatie te waarborgen en een soepele ervaring te garanderen. Het gebruik van Auto-Clustering is de eenvoudigste manier om een betrouwbare topologie voor je services te implementeren zonder dat je handmatig iets hoeft te configureren. Hiervoor vinden de volgende aanpassingen plaats:

  • Voor 2+ GlassFish (Payara) wordt de omgevingstopologie aangevuld met een load balancer (LB), bedoeld om de inkomende verzoeken te verwerken en deze over de werkers te verdelen.
  • Er wordt automatisch een extra Domain Administration Server (DAS) node toegevoegd - een instantie voor de centrale controle van cluster nodes en om de interactie tussen hen via SSH te configureren. De integratie houdt de volgende specifieke aspecten in:
    • De administratieserver is verbonden met alle werkers binnen de toepassingsserverlaag met de DAS-alias hostnaam, die door de werkers kan worden gebruikt voor verdere interactie.
    • Om de juiste connectiviteit en controle van nodes mogelijk te maken, genereert het systeem automatisch een SSH-sleutelpaar voor de DAS-node en plaatst dit in een volume dat is gekoppeld aan alle andere clusterinstanties.
Glassfish payara cluster topologie

Implementatie van Sessiereplicatie

Om de hoge beschikbaarheid van jouw GlassFish/Payara clustering te waarborgen, configureert PaaS+ automatisch sessiereplicatie over de nodes. Op deze manier wordt alle gebruikerssessiedata die tijdens verwerking wordt opgeslagen, verdeeld over alle instanties van de toepassingsserver vanaf de node die daadwerkelijk het verzoek heeft verwerkt.

Samen met het automatisch geconfigureerde mechanisme voor sticky sessions op het load balancer-niveau, zorgt sessiereplicatie voor een verhoogde betrouwbaarheid en verbetert het de failover-mogelijkheden van jouw toepassing binnen een Payara-cluster.

Sessiereplicatie in Payara met Hazelcast

Sessiereplicatie binnen de Payara-cluster is gebaseerd op Hazelcast, wat als extra voordeel heeft dat het voldoet aan de JCache standaard en de ingebouwde Web- en EJB-sessiepersistentie biedt. Dit in-memory datagrid is automatisch ingeschakeld voor alle Payara-instanties om de clusterleden in de omgeving te ontdekken via TCP zonder multicast.

Om sessiereplicatie mogelijk te maken, moet eerst de beschikbaarheid van de webcontainer ingeschakeld worden. Dit stelt beheerde webcontainerinstellingen zoals sessies in staat om te worden gebruikt over meerdere instanties met dezelfde configuratie.

In Payara Server 4 moest je Hazelcast inschakelen en toegankelijkheid handmatig configureren. Dit is standaard ingesteld in de huidige Payara 5. Als u enige configuratiewijzigingen heeft aangebracht, zorg er dan voor dat de toegankelijkheidsservice is ingeschakeld en dat het opslagtype is ingesteld op "hazelcast" op de toegankelijkheidspagina van de webcontainer.

Payara Hazelcast

Om Hazelcast-instellingen te beheren, kun je via de beheerconsole naar de configuratiepagina van de Domain Data Grid. De Domain Data Grid-functie van Payara is gebaseerd op de Hazelcast-bibliotheek. Het biedt de benodigde functionaliteit voor de implementatiegroep (clusteringfunctionaliteit), cachingfunctionaliteit, een enkel CDI-clusterobject en monitoring van gegevensopslag in Payara.

Payara domain data grid

Implementeer nu een voorbeeldtoepassing om de hoge beschikbaarheid van een automatisch samengestelde cluster te testen, met als voorbeeld een geschaalde GlassFish-server. Om de fouttolerantie te controleren, zullen we een speciale testtoepassing implementeren waarmee aangepaste sessiegegevens kunnen worden toegevoegd en gedetailleerde informatie over de server waarop deze sessie wordt verwerkt, kan worden bekeken. Op deze manier kunnen we door bepaalde clusterinstanties te stoppen, controleren of de al lopende gebruikerssessies blijven worden verwerkt, zelfs als de overeenkomstige server uitvalt. Laten we dit in de praktijk bekijken.

Deploy voorbeeld applicatie voor HA test

We gaan de hoge beschikbaarheid van zo'n automatisch samengesteld cluster controleren aan de hand van het voorbeeld van een geschaalde GlassFish-server. Om er zeker van te zijn dat deze fouttolerant is, zullen we een speciale testtoepassing implementeren. Deze toepassing stelt ons in staat om aangepaste sessiegegevens toe te voegen en gedetailleerde informatie te bekijken over de server die deze sessie verwerkt. Op deze manier kunnen we door bepaalde clusterinstanties te stoppen, controleren of de al lopende gebruikerssessies blijven worden verwerkt, zelfs als de overeenkomstige server uitvalt. Laten we dit in de praktijk bekijken.

1. Klik op "Openen in browser" naast uw omgeving om toegang te krijgen tot de startpagina van de applicatieserver.

Glassfish server HA test

2. Navigeer binnen de geopende pagina naar de Admin Console en log in met de inloggegevens die naar u zijn verzonden via e-mail bij het aanmaken van de omgeving.

3. Ga naar de sectie "Applications" en upload de clusterjsp.ear applicatie naar de locatie "Packaged File to be uploaded to the server".

Payara packaged file to server

4. Controleer of "Availability" is ingeschakeld en stel "Group1" in als de toepassingsdoelgroep. Klik vervolgens op "OK" om door te gaan.

Server targets payara cluster

5. Open nu de omgeving in uw browser en voeg "/clusterjsp" toe aan de URL.

clusterjsp HA JSP sample

6. Geef een aangepaste naam en waarde op voor het sessieattribuut en klik op "Add Session Data".

6. Schakel terug naar het beheerpaneel en ga naar "Instances". Selecteer hier de instantie waarop uw sessie wordt uitgevoerd en stop deze.

7. Ga terug naar onze toepassing en vernieuw de pagina met de juiste knop.

Zoals je kunt zien, ondanks dat de sessie wordt verwerkt door een andere instantie, wordt ons aangepaste attribuut nog steeds weergegeven.

Refreshed clusterjsp HA JSP sample


Tip: Alle replicatie-instellingen zijn beschikbaar in het gedeelte "Configurations" > "group1-config" > "Availability Service" van het beheerderspaneel van de server. Hier kun je zien dat de volgende replicatiemodi standaard zijn ingeschakeld:

  • Beschikbaarheid van webcontainer
  • Beschikbaarheid van EJB-container
Payara web container availability

...nog een paar handige tips voor GlassFish & Payara Clustering

Wanneer je GlassFish- of Payara-cluster is ingesteld en je ervoor hebt gezorgd dat alles naar wens werkt, kun je ook rekening houden met de volgende tips om de maximale efficiëntie van de werking ervan binnen de Previder Cloud te bereiken met uitgebreide platformfunctionaliteit:

  1. Voor geoptimaliseerd resourceverbruik kun je automatische schalingstriggers instellen binnen je omgevingsinstellingen, zodat nodes automatisch aan/uit worden geschakeld binnen een cluster, afhankelijk van de inkomende applicatie load.
  2. Voor verbinding met een willekeurige database-softwarestack, moeten de juiste bibliotheken worden geïntegreerd met de beheerserver van het cluster. De meest populaire zijn standaard beschikbaar bij alle nieuw gemaakte GF/Payara-nodes. Als je met oudere instanties werkt, zorg er dan voor dat de /opt/glassfish/glassfish/domains/domain1/lib DAS-map de juiste bestanden bevat (anders kun je ze handmatig naar de genoemde locatie uploaden).

Hopelijk hebben beschreven details van de GlassFish- en Payara-clusterimplementatie je voldoende inzicht gegeven om te beslissen of dit de oplossing is die jij nodig hebt. Probeer het uit door je eigen cluster te maken op het Previder PaaS+ platform in de 30 dagen gratis proefperiode.



Probeer Previder PaaS+ 30 dagen gratis! Maak direct jouw PaaS 30 dagen free trial account aan.

Maak direct je account aan en probeer Previder PaaS+ 30 dagen gratis!

  • Ongelimiteerd aantal gebruikers
  • Geen creditcard vereist
  • 30 dagen volledige functionaliteit
  • Binnen 1 minuut aan de slag

Maak gratis account aan

Meer weten over GlassFish & Payara Auto-Clustering?

Neem contact op met jouw accountmanager of neem contact op via onze contactpagina.

Lees hier alles over: