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. il est disponible sur le nexus :
<dependency> <groupId>com.hardis.adelia</groupId> <artifactId>adelia-nats-nodemanager</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
Vous pouvez également le déployer manuellement dans l'application cloud en copiant les fichiers suivants :
- adelia-nats-nodemanager-1.0-SNAPSHOT.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
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.