Le wrapper NATS est une interface minimaliste permettant de connecter le gestionnaire multi-noeuds avec un serveur NATS. Le wrapper NATS est disponible pour toutes les versions d'Adélia Studio, et nécessite jnats version 2.10.0 ou supérieur.
Adélia 14.9.x et <
Pour les versions antérieures à la 14.10.0 le wrapper il est disponible sur le nexus :
<dependency> <groupId>com.hardis.adelia</groupId> <artifactId>adelia-nats</artifactId> <version>14.10.0</version> </dependency>
Note : le projet référence un runtime Adélia 14.10 en dépendance, mais en scope provided. Les classes du wrapper NATS sont compatibles avec toutes les versions d'Adélia Cloud.
Vous pouvez également le déployer manuellement dans l'application cloud en copiant les fichiers suivants :
- adelia-nats-14.10.0.jar
eddsa-0.3.0.jar
geronimo-jms_1.1_spec-1.1.1.jar
jnats-2.17.1.jar
Si JNATS (version 2.10 ou >) est déjà présent, vous pouvez déployer uniquement ces deux fichiers :
- adelia-nats-nodemanager-1.0-SNAPSHOT.jar
- geronimo-jms_1.1_spec-1.1.1.jar
Adélia 14.10.0
Avec Adélia 14.10.0 le wrapper NATS est inclus dans le runtime Adélia (artefact adelia-nats).
<dependency> <groupId>com.hardis.adelia</groupId> <artifactId>adelia-nats</artifactId> <version>${adelia.version}</version> </dependency>
Configuration
Vous devez déclarer la ressource jndi permettant la connexion au serveur NATS dans le contexte de votre application web
<Resource auth="Container" factory="com.hardis.adelia.nats.jms.NatsReferenceFactory" name="jms/ConnectionFactory" type="com.hardis.adelia.nats.jms.NatsConnectionFactory" brokerURL="nats://localhost:4222" />
Et vous devez déclarer le startupModule dans la configuration Wagon :
<startupModule name="NodeMonitor" className="com.hardis.wagon.impl.startup.MultiNodeManagerStartupModule"> <parameters> <item key="wagon.jndiName" value="java:comp/env/jms/ConnectionFactory" /> <item key="wagon.cipher" value="false" /> <item key="java.naming.factory.initial" value="com.hardis.adelia.nats.jms.NatsInitialContextFactory" /> </parameters> </startupModule>
Les paramètres pouvant apparaître dans la configuration de la ressource jndi sont les suivants :
Paramètre | Description |
---|---|
brokerURL | Liste d'URLs d'accès aux serveurs NATS, séparés par des ';'. Valeur par défaut : nats://localhost:4222 |
clientID | ID du client NATS. Valeur par défaut : UUID généré unique. |
applicationID | ID de l'application wagon, à utiliser si vous voulez configurer sur le même cluster NATS plusieurs applications indépendantes. Valeur par défaut : common |
NKeyFile | Nom de fichier contenant la clé publique de l'utilisateur. Non renseigné par défaut. |
credentialsFile | Nom du fichier contenant les crédentiels NATS (jeton JWT + clé publique utilisateur). Non renseigné par défaut. |
pingInterval | Permet de configurer l'intervalle de ping pour maintenir la connexion (en secondes). Non renseigné par défaut. |
maxPingsOut | Nombre maximum de pings en attente. Non renseigné par défaut. |
A partir d'Adélia 14.10.1, il est possible d'intégrer ce wrapper NATS lorsqu'on utilise le gabarit pour la construction d'une application Adélia Cloud : Il faut pour cela renseigner la propriété natsNodeManagerSupport (valeur à Y) dans le fichier gradle.properties du projet Gradle.