↑ Haut de page
Description d'un souscripteur
Un souscripteur Adélia regroupe un certain nombre d'informations :
- des informations globales au souscripteur (et présentes dans tous les souscripteurs),
- des informations spécifiques au souscripteur natif sous-jacent (informations de connexion et d'abonnement aux sujets) : ces informations sont différentes en fonction de la librairie Java utilisée et du courtier ciblé.
Quel que soit le formalisme de création d'un souscripteur (en langage YAML via le fichier subscribersConf.yml ou en langage JSON via l'API REST), les informations de description restent identiques.
Structuration d'un souscripteur
Un souscripteur est un objet arborescent défini par un ensemble de propriétés :
Nom | Type | Obligatoire | Description |
---|
id | Alphanumérique | Non | Identifiant alphanumérique du souscripteur Adélia (doit être unique et non vide). S'il n'est pas renseigné, il sera généré automatiquement. |
startOnCreation | Booléen | Non | Booléen indiquant si le souscripteur doit être démarré immédiatement après sa création. |
config | Objet | Oui | Configuration globale et spécifique. |
adeliaPoolName | Alphanumérique | Non | Nom du pool nommé Adélia utilisé pour les connexions BD. |
adeliaPgm | Objet | Oui | Informations relatives au programme EADELIA associé. |
| Alphanumérique | Oui | Nom du fichier objet issu de la génération L3G du programme EADELIA associé. |
javaPackage | Alphanumérique | Non | Nom du package Java défini pour la génération L3G du programme EADELIA associé. |
parameters | Liste d'alphanumériques | Non | Liste des valeurs des paramètres passés au programme EADELIA associé lors de son exécution. L'ordre des valeurs doit respecter l'ordre de déclaration des paramètres dans le programme EADELIA. Les types Adélia de paramètres supportés sont ALPHA / NUM_BIN_2 / NUM_BIN_4 / NUM_BIN_8 / NUM_E / NUM_P / BOOL / DATE / TIME / TIMESTAMP. Le format des valeurs en fonction du type est le suivant : Type | Format |
---|
ALPHA | Chaîne alphanumérique | NUM_BIN_2 / NUM_BIN_4 / NUM_BIN_8 / NUM_E / NUM_P | Numérique (séparateur décimal '.' ; sans séparateur des milliers) Exemple : -1234.56 pour le numérique -1 234,56 | BOOL | Chaîne "true" ou "false" | DATE | Chaîne alphanumérique (texte entre guillemets) au format date ISO "YYYY-MM-DD" | TIME | Chaîne alphanumérique (texte entre guillemets) au format time ISO "HH.MM.SS" | TIMESTAMP | Chaîne alphanumérique (texte entre guillemets) au format "YYYY-MM-DD-HH.MM.SS.NNNNNN" (NNNNNN pour nanosecondes) |
|
customObjectMapper | Alphanumérique | Non | Identifiant du Java Bean définit dans le fichier beans-context.xml permettant de configurer les propriétés de transformation d'objet JSON en instance de classe Adélia |
brokerConfig | Objet | Oui | Informations relatives au souscripteur natif |
factory | Objet | Oui | Informations relatives à la fabrique Java responsable de la création du souscripteur Adélia |
id | Alphanumérique | Oui | Nom complet de la classe Java fabrique |
parameters | Objet | Non | Table de hachage (couples de <clé alphanumérique, valeur> utilisés comme paramètres lors de la création de la fabrique) |
brokerConnection | Objet | Non | Configuration spécifique des paramètres de connexion du souscripteur natif au courtier ciblé |
subscribeTopic | Objet | Oui | Configuration spécifique des paramètres d'abonnement du souscripteur natif au courtier ciblé |
L'objet config centralise la configuration générale du souscripteur. Y sont regroupés les informations spécifiques au contexte d'exécution Adélia ainsi que les informations spécifiques au souscripteur natif.
Dans un souscripteur Adélia, les informations spécifiques au courtier ciblé sont (en notation XPath) sont :
- config/brokerConfig/factory/id (et config/brokerConfig/factory/parameters si la fabrique admet des paramètres),
- config/brokerConfig/brokerConnection,
- config/brokerConfig/subscribeTopic.
id: processOrderMRK8
startOnCreation: true
config:
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
|
{
"id": "processOrderMRK8",
"startOnCreation": true,
"config": {
"adeliaPgm": {
"javaPackage": "my.company",
"objectFileName": "AMQP1",
"parameters": [
456,
"MR_K_8"
]
},
"brokerConfig": {
"factory": {
"id": "com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory"
},
"brokerConnection": {
"password": "guest",
"username": "guest"
},
"subscribeTopic": {
"consumerPrefetchCount": 1000,
"autoAck": false,
"queue": {
"declarePassive": true,
"name": "order_event_queue"
}
}
}
}
}
|
Configuration spécifique
Elle dépend du courtier ciblé et de la fabrique utilisée. De base, l'AMBSS est livré avec un certain nombre de fabriques qui supportent les courtiers ou protocoles suivants :
Configuration Kafka
Propriétés de la configuration de connexion config/brokerConfig/brokerConnection
Kafka Propriétés de la configuration de connexion config/brokerConfig/brokerConnection Détails dans la documentation Kafka |
Nom | Type | Obligatoire | Description |
---|
key.deserializer | Alphanumérique | Oui | Classe Java utilisée pour la désérialisation de la clé du message. Les classes standards supportées sont :org.apache.kafka.common.serialization.ByteArrayDeserializer (type Adélia IMAGE), org.apache.kafka.common.serialization.ByteBufferDeserializer (type Adélia IMAGE), org.apache.kafka.common.serialization.BytesDeserializer (type Adélia IMAGE), org.apache.kafka.common.serialization.DoubleDeserializer (type Adélia NUM_E / NUM_P), org.apache.kafka.common.serialization.FloatDeserializer (type Adélia NUM_E / NUM_P), org.apache.kafka.common.serialization.IntegerDeserializer (type Adélia NUM_BIN_4), org.apache.kafka.common.serialization.LongDeserializer (type Adélia NUM_BIN_8), org.apache.kafka.common.serialization.ShortDeserializer (type Adélia NUM_BIN_2), org.apache.kafka.common.serialization.StringDeserializer (type Adélia ALPHA(n) ), org.apache.kafka.common.serialization.UUIDDeserializer (type Adélia ALPHA(n) ), - io.confluent.kafka.serializers.KafkaAvroDeserializer (type Adélia REF_CLASSE).
|
value.deserializer | Alphanumérique | Oui | Classe Java utilisée pour la désérialisation de la charge utile du message. Les classes standards supportées sont : org.apache.kafka.common.serialization.ByteArrayDeserializer (type Adélia IMAGE), org.apache.kafka.common.serialization.ByteBufferDeserializer (type Adélia IMAGE), org.apache.kafka.common.serialization.BytesDeserializer (type Adélia IMAGE), org.apache.kafka.common.serialization.DoubleDeserializer (type Adélia NUM_E / NUM_P), org.apache.kafka.common.serialization.FloatDeserializer (type Adélia NUM_E / NUM_P), org.apache.kafka.common.serialization.IntegerDeserializer (type Adélia NUM_BIN_4), org.apache.kafka.common.serialization.LongDeserializer (type Adélia NUM_BIN_8), org.apache.kafka.common.serialization.ShortDeserializer (type Adélia NUM_BIN_2), org.apache.kafka.common.serialization.StringDeserializer (type Adélia ALPHA(n) ), org.apache.kafka.common.serialization.UUIDDeserializer (type Adélia ALPHA(n) ), - io.confluent.kafka.serializers.KafkaAvroDeserializer (type Adélia REF_CLASSE).
|
bootstrap.servers | Liste d'alphanumériques non vide | Oui | Liste des URI des serveurs de courtier Kafka utilisé pour la connexion. |
fetch.min.bytes | Entier | Non | Quantité minimale de données que le serveur doit renvoyer pour une requête de type fetch. Valeur par défaut : 1. |
group.id | Alphanumérique | Non | Chaîne unique identifiant le groupe de consommateurs auquel appartient ce souscripteur. |
heartbeat.interval.ms | Entier | Non | Intervalle en millisecondes entre les vérifications des pulsations au coordinateur du groupe de consommateurs pour indiquer qu'un souscripteur est actif et connecté. Valeur par défaut : 3000.
|
max.partition.fetch.bytes | Entier | Non | Quantité maximale de données par partition que le serveur renverra au souscripteur (en octets). Valeur par défaut : 1048576. |
session.timeout.ms | Entier | Non | Durée maximale en millisecondes pendant laquelle un consommateur au sein d'un groupe de consommateurs peut être hors de contact avec un courtier avant d'être considéré comme inactif et qu'un rééquilibrage soit déclenché entre les consommateurs actifs du groupe. Valeur par défaut : 45000.
|
ssl.key.password | Alphanumérique | Non | Mot de passe de la clé privée dans le fichier de stockage de clés ou la clé PEM spécifiée dans "ssl.keystore.key". Ceci est requis pour les clients uniquement si l'authentification bidirectionnelle est configurée. Celui-ci peut être saisi en clair ou crypté. |
ssl.keystore.certificate.chain | Alphanumérique | Non | Chaîne de certificats au format spécifié par "ssl.keystore.type". L'usine de moteur SSL par défaut ne prend en charge que le format PEM avec une liste de certificats X.509. |
ssl.keystore.key | Alphanumérique | Non | Clé privée au format spécifié par "ssl.keystore.type". L'usine de moteur SSL par défaut ne prend en charge que le format PEM avec les clés PKCS#8. Si la clé est cryptée, le mot de passe de la clé doit être spécifié à l'aide de "ssl.key.password". |
ssl.keystore.location | Alphanumérique | Non | Emplacement du fichier de magasin de clés. Il est facultatif pour le client et peut être utilisé pour une authentification bidirectionnelle pour le client. |
ssl.keystore.password | Alphanumérique | Non | Mot de passe de magasin pour le fichier de magasin de clés. Il est facultatif pour le client et n'est nécessaire que si "ssl.keystore.location" est configuré. Le mot de passe du magasin de clés n'est pas pris en charge pour le format PEM. Celui-ci peut être saisi en clair ou crypté. |
ssl.truststore.certificates | Alphanumérique | Non | Certificats de confiance au format spécifié par "ssl.truststore.type". L'usine de moteur SSL par défaut ne prend en charge que le format PEM avec les certificats X.509. |
ssl.truststore.location | Alphanumérique | Non | Emplacement du fichier du magasin de confiance. |
ssl.truststore.password | Alphanumérique | Non | Mot de passe du fichier Trust Store. Si aucun mot de passe n'est défini, le fichier Trust Store configuré sera toujours utilisé, mais la vérification d'intégrité est désactivée. Le mot de passe du magasin de confiance n'est pas pris en charge pour le format PEM. Celui-ci peut être saisi en clair ou crypté. |
allow.auto.create.topics | Booléen | Non | Permet d'autoriser la création automatique de sujets sur le courtier lors de l'abonnement à un sujet. Valeur par défaut : "true".
|
auto.offset.reset | Alphanumérique. Valeurs possibles : "latest", "earliest" ou "none". | Non | Indique ce qu'il faut faire lorsqu'il n'y a pas d'offset initial dans Kafka ou si l'offset actuel n'existe plus sur le serveur (par exemple parce que ces données ont été supprimées). Valeur par défaut : "latest".
|
client.dns.lookup | Alphanumérique. Valeurs possibles : "use_all_dns_ips" ou "resolve_canonical_bootstrap_servers_only" | Non | Contrôle la façon dont le souscripteur utilise les recherches DNS. Valeur par défaut : "use_all_dns_ips".
|
connections.max.idle.ms | Entier | Non | Ferme les connexions inactives après le nombre de millisecondes spécifié par cette configuration. Valeur par défaut : 540000 (9 minutes). |
default.api.timeout.ms | Entier | Non | Délai d'attente (en millisecondes) pour les API client. Cette configuration est utilisée comme délai d'expiration par défaut pour toutes les opérations client qui ne spécifient pas de paramètre de délai d'expiration. Valeur par défaut : 60000 (1 minute). |
enable.auto.commit | Booléen | Non | Si vrai, l'offset du consommateur sera périodiquement validé en arrière-plan. Valeur par défaut : "false". |
exclude.internal.topics | Booléen | Non | Indique si les topics internes correspondant à un modèle d'abonnement (pattern) doivent être exclus de l'abonnement. Il est toujours possible de s'abonner explicitement à un sujet interne. Valeur par défaut : "true".
|
fetch.max.bytes | Entier | Non | Quantité maximale de données (en octets) que le serveur doit renvoyer pour une requête de type fetch. Valeur par défaut : 52428800.
|
group.instance.id | Alphanumérique | Non | Identifiant unique de l'instance de consommateur fourni par l'utilisateur final. |
isolation.level | Alphanumérique. Valeurs possibles : "read_committed" ou "read_uncommitted" | Non | Contrôle comment lire les messages écrits de manière transactionnelle. Valeur par défaut : "read_uncommitted". |
max.poll.interval.ms | Entier | Non | Délai maximal entre les invocations de poll() lors de l'utilisation de la gestion des groupes de consommateurs (en millisecondes). Valeur par défaut : 300000 (5 minutes). |
max.poll.records | Entier | Non | Nombre maximum d'enregistrements renvoyés dans un seul appel à poll(). Valeur par défaut : 500. |
partition.assignment.strategy | Liste d'alphanumériques | Non | Liste de noms de classe ou de types de classe, classés par préférence, des stratégies d'attribution de partition prises en charge que le client utilisera pour répartir la propriété de la partition entre les instances de consommateur lorsque la gestion de groupe est utilisée. Valeur par défaut : [ 'org.apache.kafka.clients.consumer.RangeAssignor' , 'org.apache.kafka.clients.consumer.CooperativeStickyAssignor' ] |
receive.buffer.bytes | Entier | Non | Taille du tampon de réception TCP (SO_RCVBUF) à utiliser lors de la lecture des données (en octets). Une valeur de -1 indique que la valeur par défaut de l'OS est utilisée. Valeur par défaut : 65536. |
request.timeout.ms | Entier | Non | Durée maximale pendant laquelle le client attendra la réponse d'une requête (en millesecondes). Valeur par défaut: 30000 (30 secondes). |
security.protocol | Alphanumérique. Valeurs possibles : "PLAINTEXT", "SSL", "SASL_PLAINTEXT" ou "SASL_SSL" | Non | Protocole utilisé pour communiquer avec les courtiers. Valeur par défaut : "PLAINTEXT". |
send.buffer.bytes | Entier | Non | Taille du tampon d'envoi TCP (SO_SNDBUF) à utiliser lors de l'envoi de données. Une valeur de -1 indique que la valeur par défaut de l'OS est utilisée. Valeur par défaut : 131072.
|
socket.connection.setup.timeout.max.ms | Entier | Non | Durée maximale pendant laquelle le client attendra que la connexion socket soit établie (en millisecondes). Valeur par défaut : 30000 (30 secondes). |
socket.connection.setup.timeout.ms | Entier | Non | Durée pendant laquelle le client attendra que la connexion socket soit établie (en millisecondes). Valeur par défaut : 10000 (10 secondes). |
ssl.enabled.protocols | Liste d'alphanumériques. Valeurs possibles : "TLSv1.2" ou "TLSv1.3" | Non | Liste des protocoles activés pour les connexions SSL. Valeur par défaut : ['TLSv1.2'] ou ['TLSv1.2' , 'TLSv1.3' ] avec JDK v11 ou supérieur. |
ssl.keystore.type | Alphanumérique | Non | Format de fichier du fichier de magasin de clés. |
ssl.protocol | Alphanumérique. Valeurs possibles : "TLSv1.2" ou "TLSv1.3" | Non | Protocole SSL utilisé pour générer le SSLContext. Valeur par défaut : "TLSv1.2" ou "TLSv1.3" avec JDK v11 ou supérieur. |
ssl.provider | Alphanumérique | Non | Nom du fournisseur de sécurité utilisé pour les connexions SSL. |
ssl.truststore.type | Alphanumérique | Non | Format de fichier du fichier Trust Store. Valeur par défaut : "JKS". |
auto.commit.interval.ms | Entier | Non | Fréquence, en millisecondes, à laquelle les offsets du consommateur sont validés automatiquement dans Kafka si enable.auto.commit est défini à "true". Pris en compte si enable.auto.commit vaut "true". Valeur par défaut : 5000 (5 secondes). |
check.crcs | Booléen | Non | Vérifie automatiquement le CRC32 des messages consommés. Valeur par défaut : "true".
|
client.id | Alphanumérique | Non | Chaîne d'identifiant à transmettre au serveur lors des requêtes. |
client.rack | Alphanumérique | Non | Identifiant de rack pour ce client. Il peut s'agir de n'importe quelle valeur de chaîne indiquant l'emplacement physique de ce client. Il correspond à la configuration du courtier "broker.rack". |
fetch.max.wait.ms | Entier | Non | Durée maximale (en millisecondes) pendant laquelle le serveur bloquera avant de répondre à la demande de fetch s'il n'y a pas suffisamment de données pour satisfaire immédiatement l'exigence donnée par "fetch.min.bytes". Valeur par défaut : 500. |
interceptor.classes | Liste d'alphanumériques | Non | Liste de classes à utiliser comme intercepteurs. L'implémentation de l'interface org.apache.kafka.clients.consumer.ConsumerInterceptor vous permet d'intercepter (et éventuellement de muter) les enregistrements reçus par le consommateur. |
metadata.max.age.ms | Entier | Non | Période de temps en millisecondes après laquelle nous forçons une actualisation des métadonnées, même si nous n'avons vu aucun changement de direction de partition pour découvrir de manière proactive de nouveaux courtiers ou partitions. Valeur par défaut : 300000 (5 minutes). |
metric.reporters | Liste d'alphanumériques | Non | Liste de classes à utiliser comme rapporteurs de métriques. |
metrics.num.samples | Entier | Non | Nombre d'échantillons conservés pour calculer les métriques. Valeur par défaut : 2.
|
metrics.recording.level | Alphanumérique. Valeurs possibles : "INFO", "DEBUG" ou "TRACE" | Non | Niveau d'enregistrement le plus élevé pour les métriques. Valeur par défaut : "INFO". |
metrics.sample.window.ms | Entier | Non | Fenêtre de temps pendant laquelle un échantillon de métriques est calculé. Valeur par défaut : 30000 (30 secondes). |
reconnect.backoff.max.ms | Entier | Non | Durée maximale d'attente en millisecondes lors de la reconnexion à un courtier qui a échoué à plusieurs reprises à se connecter. Valeur par défaut : 1000 (1 seconde). |
reconnect.backoff.ms | Entier | Non | Temps d'attente de base avant de tenter de se reconnecter à un hôte donné. Valeur par défaut : 50. |
retry.backoff.ms | Entier | Non | Temps d'attente avant de tenter de réessayer une demande ayant échoué à une partition de rubrique donnée. Valeur par défaut : 100. |
security.providers | Liste d'alphanumériques | Non | Liste de classes de créateurs configurables renvoyant chacune un fournisseur implémentant des algorithmes de sécurité. |
schema.registry.url | Alphanumérique | Non | URL de l'instance Schema Registry. |
specific.avro.reader | Booléen | Non | Indique à Kafka / Schema Registry d'utiliser un type Avro spécifique (type d'utilisateur dans ce cas, issu de la génération Avro d'une classe Adélia), sinon Kafka s'attendra à ce que GenericRecord soit utilisé pour le topic. Valeur par défaut : "false".
|
↑ Haut de page
Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic
Kafka Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic |
Nom | Type | Obligatoire | Description |
---|
pattern | Alphanumérique | Non | Pattern de topics à souscrire. Pris en compte si les propriétés "topics" et "partitions" sont non renseignées. |
topics | Liste d'alphanumériques non vide | Non | Liste de topics à souscrire. Pris en compte si les propriétés "pattern" et "partitions" sont non renseignées. |
partitions | Liste d'objets topicPartition | Non | Liste sur les informations des topics et partitions à souscrire. Pris en compte si les propriétés "pattern" et "topics" sont non renseignées. |
[n] | Objet | Oui | Topic et partition à souscrire. |
topic | Alphanumérique non vide | Oui | Nom du topic (d'index n) dans la liste sur les informations des topics et partition à souscrire. |
partition | Entier positif | Oui | Numéro de la partition associée au topic (d'index n) dans la liste sur les informations des topics et partition à souscrire. |
ackMode | Alphanumérique. Valeurs possibles : "RECORD", "BATCH", "TIME", "COUNT", "COUNT_TIME", "MANUAL" ou "MANUAL_IMMEDIATE" | Non | Indique le mode d'acquisition et d'acquittement de messages. - RECORD : acquitte automatiquement le message (commit l'offset du message) à la fin de son traitement,
- BATCH : acquitte automatiquement les messages (commit les offset des messages) quand tous ceux qui ont été retournés par un appel à poll() ont été traités (traitement par lot),
- TIME : acquitte automatiquement les messages (commit les offset des messages) quand tous ceux qui ont été retournés par un appel à poll() ont été traités (traitement par lot) et qu'une durée (définie par la propriété ackTime) à été dépassée à partir du dernier commit,
- COUNT : acquitte automatiquement les messages (commit les offset des messages) quand tous ceux qui ont été retournés par un appel à poll() ont été traités (traitement par lot) et qu'un nombre de messages traités (défini par la propriété ackCount) à été dépassé à partir du dernier commit,
- COUNT_TIME : semblable à TIME et COUNT, mais l'acquittement est effectué si l'une ou l'autre des conditions est vraie,
- MANUAL : acquittement manuel du ou des messages par l'utilisateur (l'acquittement est asynchrone),
- MANUAL_IMMEDIATE : acquittement manuel du ou des messages par l'utilisateur (l'acquittement est synchrone).
Valeur par défaut : BATCH. |
ackTime | Entier | Non | Durée en millisecondes après laquelle les messages en attente d'acquittement sont acquittés. Prise en compte si la propriété "ackMode" vaut "TIME" ou "COUNT_TIME". La valeur doit être supérieure à la valeur de la propriété "pollTimeout". Valeur par défaut : 5000. |
ackCount | Entier | Non | Nombre minimal de messages en attente d'acquittement à partir duquel déclencher leur acquittement. Pris en compte si la propriété "ackMode" vaut "COUNT" ou "COUNT_TIME". Valeur par défaut : 1. |
typeMsgHandling | Alphanumérique. Valeurs possibles : "BATCH" ou "SINGLE" | Non | Mode d'acquisition des messages (par lot ou unitairement). Pris en compte si "ackMode" vaut "MANUAL" ou "MANUAL_IMMEDIATE". Valeur par défaut : SINGLE. |
pollTimeout | Entier | Non | Temps d'attente maximum (en millisecondes) pour l'acquisition des messages - valeur de timeout passée à l'appel à poll(). Valeur par défaut : 5000. |
commitLogLevel | Alphanumérique. Valeurs possibles : "DEBUG", "ERROR, "FATAL, "INFO, "TRACE ou "WARN" | Non | Niveau de log du traitement natif des commit d'offset. Valeur par défaut : "DEBUG". |
missingTopicsFatal | Booléen | Non | Mode de démarrage du souscripteur natif si les topics à souscrire n'existent pas sur le courtier. Si "true", le souscripteur ne démarrera pas. Pris en compte seulement si "topics" ou "partitions" sont renseignées. Valeur par défaut : "false". |
onlyLogRecordMetadata | Booléen | Non | Niveau de log d'un message. Si "false", le message en entier est loggé dans les logs produits au lieu de juste logger <topic>-<partition>@<offset>. Valeur par défaut : "false". |
stopImmediate | Booléen | Non | Quand le souscripteur est arrêté, permet d'arrêter le traitement après le message courant (true) au lieu d'arrêter après avoir traité tous les messages retournés par le précédent appel à poll() (false). Valeur par défaut : "false". |
↑ Haut de page
Configuration MQTT v3
Propriétés de la configuration de connexion config/brokerConfig/brokerConnection
MQTT v3 Propriétés de la configuration de connexion config/brokerConfig/brokerConnection Détails dans la documentation Apache Paho MQTTv3 |
Nom | Type | Obligatoire | Description |
---|
automaticReconnect | Booléen | Non | Indique si le client tentera automatiquement de se reconnecter au serveur si la connexion est perdue. Valeur par défaut : "false". |
reconnectCloseTimeout | Entier positif | Non | Délai d'attente de tentative de reconnexion réussie avant de fermer définitivement le souscripteur. Pris en compte si "automaticReconnect" vaut "true". Valeur par défaut : pas de délai d'attente. |
cleanSession | Booléen | Non | Indique si le client et le serveur doivent se souvenir de l'état du client lors des reconnexions. Valeur par défaut : "true". Si la valeur est "false", "subscribeTopic/clientId" doit est fixé. |
connectionTimeout | Entier positif | Non | Valeur du délai d'expiration de la connexion. Cette valeur, mesurée en secondes, définit l'intervalle de temps maximal pendant lequel le client attendra que la connexion réseau au serveur MQTT soit établie. Valeur par défaut : 30. |
keepAliveInterval | Entier positif | Non | Intervalle "keep alive". Cette valeur, mesurée en secondes, définit l'intervalle de temps maximal entre les messages envoyés ou reçus. Il permet au client de détecter si le serveur n'est plus disponible, sans avoir à attendre le timeout TCP/IP. Valeur par défaut : 60.
|
maxInflight | Entier positif | Non | Fixe le nombre maximal de messages que le courtier peut envoyer sans recevoir d'accusé de réception. Valeur par défaut : 10. |
mqttVersion | Alphanumérique. Valeurs possibles : "3.1.1" ou "3.1" | Non | Fixe la version du protocole MQTT v3 à utiliser (3.1 ou 3.1.1). Valeur par défaut : 3.1.1. |
serverURIs | Liste d'alphanumériques | Non | Liste d'un ou plusieurs URI de serveur MQTT auxquels le client peut se connecter. Valeur par défaut : [ 'tcp://localhost:1883' ]. Si le port n'est pas spécifié dans l'URI, il prendra la valeur 1883 pour 'tcp://' et 8883 pour 'ssl://
|
userName | Alphanumérique | Non | Nom d'utilisateur à utiliser pour la connexion. Celui-ci peut être saisi en clair ou crypté. |
password | Alphanumérique | Non | Mot de passe à utiliser pour la connexion. Celui-ci peut être saisi en clair ou crypté. |
will | Objet | Non | Message "Last Will and Testament" (LWT) pour la connexion. |
topic | Alphanumérique non vide | Oui | Topic du LWT. |
payload | Alphanumérique | Oui | Charge utile du message LWT. |
qos | Entier 0 à 2 | Non | Niveau de qualité de service de publication du message LWT. Valeur par défaut : 0. |
retained | Booléen | Non | Indique si le message LWT doit être conservé. Valeur par défaut : "false". |
sslProperties | Objet | Non | Propriétés de la connexion SSL (l'URL de connexion doit commencer par "ssl:" au lieu de "tcp:"). |
com.ibm.ssl.protocol | Alphanumérique. Valeurs possibles : "SSL", "SSLv2", "SSLv3', "SSL_TLS", "SSL_TLSv2", "TLS", "TLSv1", ou "TLSv1.2". | Non | Type de protocole |
com.ibm.ssl.contextProvider | Alphanumérique | Non | Fournisseur JSSE sous-jacent. Par exemple "IBMJSSE2" ou "SunJSSE". |
com.ibm.ssl.keyStore | Alphanumérique | Non | Nom du fichier contenant l'objet KeyStore que vous souhaitez que le KeyManager utilise. Par exemple : /monrep/etc/key.p12 |
com.ibm.ssl.keyStorePassword | Alphanumérique | Non | Mot de passe de l'objet KeyStore que vous souhaitez que le KeyManager utilise. Celui-ci peut être saisi en clair ou crypté. |
com.ibm.ssl.keyStoreType | Alphanumérique | Non | Type de magasin de clés, par exemple : "PKCS12", "JKS" ou "JCEKS". |
com.ibm.ssl.keyStoreProvider | Alphanumérique | Non | Fournisseur de magasin de clés, par exemple : "IBMJCE" ou "IBMJCEFIPS". |
com.ibm.ssl.keyManager | Alphanumérique | Non | Algorithme qui sera utilisé pour instancier un objet KeyManagerFactory au lieu d'utiliser l'algorithme par défaut disponible dans la plateforme. Exemples de valeurs : "IbmX509" ou "IBMJ9X509" |
com.ibm.ssl.trustStore | Alphanumérique | Non | Nom du fichier contenant l'objet KeyStore que vous souhaitez que le TrustManager utilise. |
com.ibm.ssl.trustStorePassword | Alphanumérique | Non | Mot de passe de l'objet TrustStore que vous souhaitez que le TrustManager utilise. Celui-ci peut être saisi en clair ou crypté. |
com.ibm.ssl.trustStoreType | Alphanumérique | Non | Type d'objet KeyStore que vous souhaitez que le TrustManager par défaut utilise. Mêmes valeurs possibles que "keyStoreType". |
com.ibm.ssl.trustStoreProvider | Alphanumérique | Non | Fournisseur de magasin de confiance, par exemple : "IBMJCE" ou "IBMJCEFIPS". |
com.ibm.ssl.trustManager | Alphanumérique | Non | Algorithme qui sera utilisé pour instancier un objet TrustManagerFactory au lieu d'utiliser l'algorithme par défaut disponible dans la plateforme. Exemples de valeurs : "PKIX" ou "IBMJ9X509" |
com.ibm.ssl.enabledCipherSuites | Alphanumérique | Non | Liste des chiffrements activés. Les valeurs dépendent du fournisseur, par exemple : SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA |
com.ibm.ssl.clientAuthentication | Alphanumérique | Non | Détermine si l'authentification client SSL est requise. Valeur par défaut : "false". |
↑ Haut de page
Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic
MQTT v3 Propriétés de la configuration de souscription config/brokerConfig/ subscribeTopic Détails dans la documentation Apache Paho MQTTv3 |
Nom | Type | Obligatoire | Description |
---|
clientId | Alphanumérique | Non | Identifiant du client. Si "brokerConnection/cleanSession" vaut "false", cette propriété doit être renseignée. |
persistance | Alphanumérique. Valeurs possibles : "file" ou "memory" | Non | Mécanisme de persistance des messages. Valeur par défaut : "file". |
persistantFileDirectory | Alphanumérique | Non | Répertoire de stockage des messages. Pris en compte lorsque "persistance" vaut "file". Valeur par défaut : "user.dir" de la JVM Java. |
manualAcks | Booléen | Non | Indique si l'acquittement de message est automatique ou manuel. Valeur par défaut : "false". |
timeToWait | Entier | Non | Temps d'attente maximal pour qu'une action avec le courtier se termine. Une valeur de 0 ou -1 indique "pas de temps d'attente maximal" (attendre la fin de l'action). Valeur par défaut : -1. |
topics | Liste d'objets topics | Oui | Liste sur les informations des topics à souscrire. |
[n] | Objet | Oui | Topic à souscrire. |
topicFilter | Alphanumérique non vide | Oui | Nom du topic (d'index n) dans la liste sur les informations des topics à souscrire. |
qos | Entier 0 à 2 | Non | Niveau de qualité de service de réception des messages du topic (d'index n) dans la liste sur les informations des topics à souscrire. Valeur par défaut : 1. |
↑ Haut de page
Configuration MQTT v5
Propriétés de la configuration de connexion config/brokerConfig/brokerConnection
MQTT v5 Propriétés de la configuration de connexion config/brokerConfig/brokerConnection Détails dans la documentation Apache Paho MQTTv5 |
Non | Type | Obligatoire | Description |
---|
authData | Alphanumérique encodé en base 64 | Non | Données d'authentification |
authMethod | Alphanumérique | Non | Méthode d'authentification |
automaticReconnect | Booléen | Non | Indique si le client tentera automatiquement de se reconnecter au serveur si la connexion est perdue. Valeur par défaut : "false". |
automaticReconnectMinDelay | Entier | Non | Nombre minimum de secondes à attendre avant de tenter de se reconnecter automatiquement. Valeur par défaut : 1. |
automaticReconnectMaxDelay | Entier | Non | Nombre maximum de secondes à attendre avant de tenter de se reconnecter automatiquement. Valeur par défaut : 120
|
reconnectCloseTimeout | Entier positif | Non | Délai d'attente de tentative de reconnexion réussie avant de fermer définitivement le souscripteur. Pris en compte si automaticReconnect vaut "true". Valeur par défaut : "pas de délai d'attente". |
cleanStart | Booléen | Non | Indique si le client et le serveur doivent se souvenir de l'état de la session lors des redémarrages et des reconnexions. Valeur par défaut : "true". |
connectionTimeout | Entier positif | Non | Valeur du délai d'expiration de la connexion. Cette valeur, mesurée en secondes, définit l'intervalle de temps maximal pendant lequel le client attendra que la connexion réseau au serveur MQTT soit établie. Valeur par défaut : 30. |
httpsHostnameVerificationEnabled | Booléen | Non | Active la vérification de l'hôte lors d'une connexion HTTPS . Valeur par défaut : "true". |
keepAliveInterval | Entier positif | Non | Intervalle "keep alive". Cette valeur, mesurée en secondes, définit l'intervalle de temps maximal entre les messages envoyés ou reçus. Il permet au client de détecter si le serveur n'est plus disponible, sans avoir à attendre le timeout TCP/IP. Valeur par défaut : 60. |
maximumPacketSize | Entier entre 1 et 2684354656 | Non | Taille maximale de paquet. Valeur par défaut : "pas de limite". |
maxReconnectDelay | Entier | Non | Temps d'attente maximal (en millisecondes) entre les reconnexions. Valeur par défaut : 128000. |
receiveMaximum | Entier entre 1 et 65535 | Non | Nombre maximum de réceptions. Cette valeur représente la limite des publications QoS 1 et QoS 2 que le client est prêt à traiter simultanément. Il n'y a pas de mécanisme pour limiter le nombre de publications en QoS 0 que le courtier peut envoyer. Valeur par défaut : 65535. |
requestProblemInfo | Booléen | Non | Indicateur de demande d'informations sur les problèmes rencontrés dans le protocole de communication. Valeur par défaut : "true".
|
requestResponseInfo | Booléen | Non | Indicateur d'informations de réponse à la demande. Valeur par défaut : "false".
|
serverURIs | Liste d'alphanumériques | Non | Liste d'un ou plusieurs URI de serveur MQTT auxquels le client peut se connecter. Valeur par défaut : [ ' tcp://localhost:1883 ' ]. Si le port n'est pas spécifié dans l'URI, il prendra la valeur 1883 pour 'tcp://' et 8883 pour 'ssl://'. |
sessionExpiryInterval | Entier | Non | Intervalle d'expiration de la session. Cette valeur, mesurée en secondes, définit la durée maximale pendant laquelle le courtier maintiendra la session une fois que le client se déconnectera. Les clients ne doivent se connecter avec un long intervalle d'expiration de session que s'ils ont l'intention de se connecter au serveur ultérieurement. Valeur par défaut : jamais. |
topicAliasMaximum | Entier entre 0 et 65535 | Non | Maximum d'alias de sujet. Cette valeur, si elle est présente, représente la valeur la plus élevée que le client acceptera comme alias de sujet envoyé par le serveur. Valeur par défaut : 0. |
userName | Alphanumérique | Non | Nom d'utilisateur à utiliser pour la connexion. Celui-ci peut être saisi en clair ou crypté. |
password | Alphanumérique | Non | Mot de passe à utiliser pour la connexion. Celui-ci peut être saisi en clair ou crypté. |
userProperties | Liste de listes à deux éléments d'alphanumériques | Non | Propriétés de l'utilisateur. Une propriété utilisateur est une paire de chaînes UTF-8, le même nom peut apparaître plusieurs fois. |
useSubscriptionIdentifiers | Booléen | Non | Indique s'il faut attribuer automatiquement des identifiants d'abonnement lors de l'abonnement à une rubrique. Valeur par défaut : "true". |
will | Objet | Non | Message "Last Will and Testament" (LWT) pour la connexion. |
topic | Alphanumérique non vide | Oui | Topic du LWT. |
payload | Alphanumérique | Oui | Charge utile du message LWT. |
qos | Entier 0 à 2 | Non | Niveau de qualité de service de publication du message LWT. Valeur par défaut : 0. |
retained | Booléen | Non | Indique si le message LWT doit être conservé. Valeur par défaut : "false". |
sslProperties | Objet | Non | Propriétés de la connexion SSL (l'URL de connexion doit commencer par "ssl:" au lieu de "tcp:"). |
com.ibm.ssl.protocol | Alphanumérique. Valeurs possibles : "SSL", "SSLv2", "SSLv3", "SSL_TLS", "SSL_TLSv2", "TLS", "TLSv1" ou "TLSv1.2" | Non | Type de protocole |
com.ibm.ssl.contextProvider | Alphanumérique | Non | Fournisseur JSSE sous-jacent. Par exemple : "IBMJSSE2" ou "SunJSSE". |
com.ibm.ssl.keyStore | Alphanumérique | Non | Nom du fichier contenant l'objet KeyStore que vous souhaitez que le KeyManager utilise. Par exemple : /monrep/etc/key.p12 |
com.ibm.ssl.keyStorePassword | Alphanumérique | Non | Mot de passe de l'objet KeyStore que vous souhaitez que le KeyManager utilise. Celui-ci peut être saisi en clair ou crypté. |
com.ibm.ssl.keyStoreType | Alphanumérique | Non | Type de magasin de clés, par exemple : "PKCS12", "JKS" ou "JCEKS". |
com.ibm.ssl.keyStoreProvider | Alphanumérique | Non | Fournisseur de magasin de clés, par exemple : "IBMJCE" ou "IBMJCEFIPS". |
com.ibm.ssl.keyManager | Alphanumérique | Non | Algorithme qui sera utilisé pour instancier un objet KeyManagerFactory au lieu d'utiliser l'algorithme par défaut disponible dans la plateforme. Exemples de valeurs : "IbmX509" ou "IBMJ9X509". |
com.ibm.ssl.trustStore | Alphanumérique | Non | Nom du fichier contenant l'objet KeyStore que vous souhaitez que le TrustManager utilise. |
com.ibm.ssl.trustStorePassword | Alphanumérique | Non | Mot de passe de l'objet TrustStore que vous souhaitez que le TrustManager utilise. Celui-ci peut être saisi en clair ou crypté. |
com.ibm.ssl.trustStoreType | Alphanumérique | Non | Type d'objet KeyStore que vous souhaitez que le TrustManager par défaut utilise. Mêmes valeurs possibles que "keyStoreType". |
com.ibm.ssl.trustStoreProvider | Alphanumérique | Non | Fournisseur de magasin de confiance, par exemple : "IBMJCE" ou "IBMJCEFIPS". |
com.ibm.ssl.trustManager | Alphanumérique | Non | Algorithme qui sera utilisé pour instancier un objet TrustManagerFactory au lieu d'utiliser l'algorithme par défaut disponible dans la plateforme. Exemples de valeurs : "PKIX" ou "IBMJ9X509". |
com.ibm.ssl.enabledCipherSuites | Alphanumérique | Non | Liste des chiffrements activés. Les valeurs dépendent du fournisseur, par exemple : SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA |
com.ibm.ssl.clientAuthentication | Alphanumérique | Non | Détermine si l'authentification client SSL est requise. Valeur par défaut : "false". |
↑ Haut de page
Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic
MQTT v5 Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic Détails dans la documentation Apache Paho MQTTv5 |
Nom | Type | Obligatoire | Description |
---|
clientId | Alphanumérique | Non | Identifiant du client. Si "brokerConnection/cleanStart" vaut "false", cette propriété doit être renseignée. |
persistance | Alphanumérique. Valeurs possibles : "file" ou "memory" | Non | Mécanisme de persistance des messages. Valeur par défaut : "file". |
persistantFileDirectory | Alphanumérique | Non | Répertoire de stockage des messages. Pris en compte lorsque "persistance" vaut "file". Valeur par défaut : "user.dir" de la JVM Java. |
manualAcks | Booléen | Non | Indique si l'acquittement de message est automatique ou manuel. Valeur par défaut : "false". |
timeToWait | Entier | Non | Temps d'attente maximal pour qu'une action avec le courtier se termine. Une valeur de 0 ou -1 indique "pas de temps d'attente maximal" (attendre la fin de l'action). Valeur par défaut : -1. |
topics | Liste d'objets topic | Oui | Liste sur les informations des topics à souscrire. |
[n] | Objet | Oui | Topic à souscrire. |
topicFilter | Alphanumérique non vide | Oui | Nom du topic (d'index n) dans la liste sur les informations des topics à souscrire. |
qos | Entier 0 à 2 | Non | Niveau de qualité de service de réception des messages du topic (d'index n) dans la liste sur les informations des topics à souscrire. Valeur par défaut : 1. |
retainAsPublish | Booléen | Non | Indique si le courtier conserve le flag "retain" lors de l'envoi d'un message conservé au souscripteur. Valeur par défaut : "false". |
noLocal | Booléen | Non | Permet de ne pas recevoir les messages que le souscripteur a publié. Valeur par défaut : "false". |
retainHandling | Entier 0 à 2 | Non | Permet de spécifier si le serveur transmet le message retenu au client lors de l'établissement d'un abonnement. Valeur par défaut : 0. |
↑ Haut de page
Configuration Nats Jetstream
Propriétés de la configuration de connexion config/brokerConfig/brokerConnection
Nats JetStream Propriétés de la configuration de connexion config/brokerConfig/brokerConnection Détails dans la documentation Java Client for Nats Jetstream |
Nom | Type | Obligatoire | Description |
---|
jetStreamCtx | Objet | Non | Contexte de connexion Jetstream. |
prefix | Alphanumérique | Non | Préfixe pour les sujets JetStream. Valeur par défaut : $JS.API. |
requestTimeout | Alphanumérique au format de durée ISO-8601 | Non | Délai d'expiration de la demande pour les appels d'API JetStream. Valeur par défaut : "PT2S" (2 secondes). |
natsCon | Objet | Non | Paramètres de la connexion Nats. |
bufferSize | Entier | Non | Taille initiale des tampons (en octets) dans la connexion, principalement pour les tests. Valeur par défaut : 64 * 1024. |
connectionName | Alphanumérique | Non | Fixe le nom de la connexion. |
connectionTimeout | Alphanumérique au format de durée ISO-8601 | Non | Fixe le délai d'expiration des tentatives de connexion. Valeur par défaut : "PT2S" (2 secondes). |
dataPortType | Alphanumérique | Non | Fixe la classe Java à utiliser pour ce port de données de connexion. |
discardMessagesWhenOutgoingQueueFull | Booléen | Non | Active les messages de suppression lorsque la file d'attente sortante est pleine. Valeur par défaut : "false". |
inboxPrefix | Alphanumérique | Non | Préfixe de la boîte de réception de la connexion. Valeur par défaut : _INBOX. |
maxControlLine | Entier | Non | Longueur maximale (en octets) d'une ligne de contrôle envoyée par cette connexion. Valeur par défaut : 4096. |
maxMessagesInOutgoingQueue | Entier | Non | Nombre maximal de messages dans la file d'attente sortante. Valeur par défaut : 5000. |
maxPingsOut | Entier | Non | Nombre maximum de pings que le client peut avoir en vol. Valeur par défaut : 2. |
maxReconnects | Entier | Non | Nombre maximal de tentatives de reconnexion. La valeur 0 désactive les reconnexions. La valeur -1 active les re connexions infinies. Valeur par défaut : 60. |
noEcho | Booléen | Non | Désactive l'écho. Valeur par défaut : "false". |
noHeaders | Booléen | Non | Désactive la prise en charge des en-têtes. Valeur par défaut : "false". |
noNoResponders | Booléen | Non | Désactive l'assistance sans réponse. Valeur par défaut : "false". |
noRandomize | Booléen | Non | Désactive la randomisation du pool de serveurs. Valeur par défaut : "false". |
oldRequestStyle | Booléen | Non | Active l'ancien style de demande qui utilise une nouvelle boîte de réception et un nouvel abonné pour chaque demande. Valeur par défaut : "false". |
opentls | Booléen | Non | Contexte SSL sur un contexte qui accepte n'importe quel certificat de serveur et n'a aucun certificat client. Valeur par défaut : "false". |
pedantic | Booléen | Non | Active le mode pédant pour le serveur, par rapport à cette connexion. Valeur par défaut : "false". |
pingInterval | Alphanumérique au format de durée ISO-8601 | Non | Intervalle entre les tentatives de ping du serveur. Valeur par défaut : "PT2M" (2 minutes). |
reconnectBufferSize | Entier | Non | Nombre maximal d'octets à mettre en mémoire tampon dans le client lors d'une tentative de reconnexion. Valeur par défaut : 8388608. |
reconnectJitter | Entier | Non | Délai d'attente entre les tentatives de reconnexion au même serveur. Valeur par défaut : "PT0.1S" (100 millisecondes). |
reconnectJitterTls | Entier | Non | Délai d'attente d'une connexion tls/sécurisée entre les tentatives de reconnexion au même serveur. Valeur par défaut : "PT1S" (1 seconde). |
reconnectWait | Entier | Non | Délai d'attente entre les tentatives de reconnexion au même serveur. Valeur par défaut : "PT2S" (2 secondes). |
requestCleanupInterval | Alphanumérique au format de durée ISO-8601 | Non | Intervalle entre les passes de nettoyage sur les contrats à terme de demandes en attente qui sont annulés ou qui ont expiré dans le code d'application. Valeur par défaut : "PT5S" (5 secondes). |
secure | Booléen | Non | Options pour utiliser le contexte SSL par défaut, s'il existe. Valeur par défaut : "false". |
servers | Liste d'alphanumériques | Non | Liste des URI des serveurs auxquels se connecter. Valeur par défaut : [ "nats://localhost:4222" ]. |
shareConnection | Booléen | Non | Partage une connexion (au serveur Nats) pour plusieurs souscripteurs. Valeur par défaut : "false". Si la valeur est "true", le souscripteur à créer utilisera une connexion existante d'un souscripteur en cours d'exécution, si celle-ci a les mêmes caractéristiques que celle du souscripteur à créer (les deux objets natsCon doivent avoir toutes leurs propriétés de même valeur). Dans le cas contraire, une nouvelle connexion sera créée (à partir des propriétés de l'objet natsCon). Celle-ci pourra être partagée avec les prochains souscripteurs créés. Dans le cas d'un partage de connexion entre plusieurs souscripteurs, seul le dernier souscripteur arrêté ferme la connexion au serveur Nats. Si la valeur est "false", une nouvelle connexion au serveur Nats est créée pour chaque souscripteur.
|
traceConnection | Booléen | Non | Active les messages de trace de connexion. Valeur par défaut : "false". |
turnOnAdvancedStats | Booléen | Non | Active les statistiques avancées, principalement pour les tests/benchmarks. Valeur par défaut : "false". |
verbose | Booléen | Non | Active le mode détaillé avec le serveur. Valeur par défaut : "false". |
authUserPwd | Objet | Non | Authentification de la connexion avec un nom d'utilisateur et mot de passe (cliquez ici pour plus de détails). Le mode d'authentification doit être exclusif : soit par nom d'utilisateur/mot de passe, soit avec un jeton, soit avec une NKey, soit avec un fichier d'informations d'identification.
|
userName | Alphanumérique | Non | Nom d'utilisateur pour l'authentification basique. Celui-ci peut être saisi en clair ou crypté. |
password | Alphanumérique | Non | Mot de passe pour l'authentification basique. Celui-ci peut être saisi en clair ou crypté. |
authToken | Alphanumérique | Non | Authentification de la connexion avec un jeton (cliquez ici pour plus de détails). Celui-ci peut être saisi en clair ou crypté. Le mode d'authentification doit être exclusif : soit par nom d'utilisateur/mot de passe, soit avec un jeton, soit avec une NKey, soit avec un fichier d'informations d'identification. |
authNKeySeed | Alphanumérique | Non | Authentification de la connexion avec une NKey (clé privée Seed ; cliquez ici pour plus de détails). Celle-ci peut être saisie en clair ou cryptée. Le mode d'authentification doit être exclusif : soit par nom d'utilisateur/mot de passe, soit avec un jeton, soit avec une NKey, soit avec un fichier d'informations d'identification. |
authCredsFile | Alphanumérique | Non | Authentification de la connexion avec un fichier d'informations d'identification (credential file contenant un jeton JWT ainsi qu'une clé NKey privée ; cliquez ici pour plus de détails). La valeur doit être une URI pointant sur ce fichier (exemple : file:///home/useradelia/.local/share/nats/nsc/keys/creds/MyOperator/MyAccount/MyUser.creds), où la valeur encodée en base64 du contenu du fichier. Cette valeur peut être saisie en clair ou cryptée. Le mode d'authentification doit être exclusif : soit par nom d'utilisateur/mot de passe, soit avec un jeton, soit avec une NKey, soit avec un fichier d'informations d'identification. |
↑ Haut de page
Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic
Nats JetStream Propriétés de la configuration de souscription config/brokerConfig/ subscribeTopic Détails dans la documentation Java Client for Nats Jetstream |
Nom | Type | Obligatoire | Description |
---|
subject | Alphanumérique | Oui | Nom du sujet à souscrire. |
queueGroupName | Alphanumérique | Non | Nom de groupe de queue à rejoindre. |
subscribeType | ALphanumérique. Valeurs possibles : "Push" ou "Pull" | Oui | Type de souscription aux messages. |
pushSubOpts | Objet | Non | Informations de souscription de type "PUSH". |
deliverGroup | Alphanumérique | Non | Groupe de livraison. |
deliverSubject | Alphanumérique | Non | Sujet de livraison. |
durable | Alphanumérique | Non | Nom de souscripteur durable. |
stream | Alphanumérique | Non | Flux auquel appartient le sujet à souscrire. |
bind | Booléen | Non | Lie le souscripteur durable au flux. Valeur par défaut : "false". |
pendingMessageLimit | Entier | Non | Limites sur le nombre maximal de messages que le consommateur conservera avant de commencer à supprimer de nouveaux messages en attendant que l'application vide la file d'attente. Valeur par défaut : 65536. |
pendingByteLimit | Entier | Non | Limites sur la taille maximale des messages (en octets) que ce consommateur conservera avant de commencer à supprimer de nouveaux messages en attendant que l'application vide la file d'attente. Valeur par défaut : 67108864. |
pushMaxWait | Entier | Oui | Délai d'attente maximale pour la réception d'un message. |
consumerConfig | Objet | Non | Informations de configuration du consommateur. |
ackPolicy | Alphanumérique. Valeurs possibles : "All", "Explicit" ou "None" | Non | Mode d'acquittement des messages. Valeur par défaut : "Explicit". Si subscribeType vaut "Pull" alors la seule valeur possible est "Explicit". |
ackWait | Alphanumérique au format de durée ISO-8601 | Non | Durée d'attente de l'accusé de réception. |
deliverPolicy | Alphanumérique. Valeurs possibles : "All", "ByStartSequence", "ByStartTime", "Last", "LastPerSubject" ou "New" | Non | Stratégie de livraison des messages au consommateur. Valeur par défaut : "All". |
description | Alphanumérique | Non | Fixe une description à cette configuration. |
filterSubject | Alphanumérique | Non | Sujet du filtre. |
flowControl | Alphanumérique au format de durée ISO-8601 | Non | Active le contrôle de flux. Valable seulement si subscribeType vaut "Push". |
idleHeartbeat | Alphanumérique au format de durée ISO-8601 | Non | Temps d'attente des signaux de présence inactifs du consommateur. Valable seulement si subscribeType vaut "Push". |
maxAckPending | Entier | Non | Maximum d'accusés de réception en attente. Valable seulement si subscribeType vaut "Push" et si ackPolicy est différent de "None". Valeur par défaut : -1. |
maxDeliver | Entier | Non | Nombre maximal de livraisons de messages. Valeur par défaut : -1. |
maxPullWaiting | Entier | Non | Attente d'extraction maximale : nombre d'extractions qui peuvent être en attente sur un consommateur en mode "PULL". Les extractions reçues après que ce nombre est atteint sont ignorées. Valeur par défaut : 0. |
rateLimit | Entier | Non | Limite de débit (nombre de messages par seconde). Valeur par défaut : -1. |
replayPolicy | Alphanumérique. Valeurs possibles : "Instant" ou "Original" | Non | Définit la stratégie de relecture des messages. Pris en compte seulement si deliverPolicy vaut "All", "ByStartSequence" ou "ByStartTime". Valeur par défaut : "Instant". |
sampleFrequency | Alphanumérique | Non | Fréquence d'échantillonnage en pourcentage. Par exemple : 30% ou 30 (la valeur doit être comprise entre 0 et 100). |
startSequence | Entier | Non | Séquence de démarrage d'acquisition des messages dans le flux. Pris en compte si deliverPolicy vaut "ByStartSequence". |
startTime | Alphanumérique au format de durée ISO-8601 | Non | Heure de début d'acquisition des messages dans le flux. Pris en compte si deliverPolicy vaut "ByStartTime". |
pullSubOpts | Objet | Non | Informations de souscription de type "PULL". |
durable | Alphanumérique | Oui | Nom de souscripteur durable. |
stream | Alphanumérique | Non | Nom du flux auquel appartient le sujet à souscrire. |
bind | Booléen | Non | Lie le souscripteur durable au flux. Valeur par défaut : "false". |
pullType | Alphanumérique. Valeurs possibles : "Fetch" ou "Iterate" | Oui | Mode d'acquisition des messages en mode "PULL". |
pullBatchSize | Entier entre 1 et 256 | Oui | Nombre maximum de messages récupérés au sein d'un lot. |
pullMaxWait | Alphanumérique au format de durée ISO-8601 | Oui | Délai d'attente maximale pour la réception des messages par lot. |
consumerConfig | Objet | Non | Informations de configuration du consommateur. |
ackPolicy | ALphanumérique. Valeurs possibles : "All", "Explicit" ou "None" | Non | Mode d'acquittement des messages. Valeur par défaut : "Explicit". Si subscribeType vaut "Pull", la seule valeur possible est "Explicit". |
ackWait | Alphanumérique au format de durée ISO-8601 | Non | Durée d'attente de l'accusé de réception. |
deliverPolicy | Alphanumérique. Valeurs possibles : "All", "ByStartSequence", "ByStartTime", "Last", "LastPerSubject" ou "New" | Non | Stratégie de livraison des messages au consommateur. Valeur par défaut : "All". |
description | Alphanumérique | Non | Fixe une description à cette configuration. |
filterSubject | Alphanumérique | Non | Sujet du filtre. |
flowControl | Alphanumérique au format de durée ISO-8601 | Non | Active le contrôle de flux. Valable seulement si subscribeType vaut "Push". |
idleHeartbeat | Alphanumérique au format de durée ISO-8601 | Non | Temps d'attente des signaux de présence inactifs du consommateur. Valable seulement si subscribeType vaut "Push". |
maxAckPending | Entier | Non | Maximum d'accusés de réception en attente. Valable seulement si subscribeType vaut "Push" et si ackPolicy est différent de "None". Valeur par défaut : -1. |
maxDeliver | Entier | Non | Nombre maximal de livraisons de messages. Valeur par défaut : -1. |
maxPullWaiting | Entier | Non | Attente d'extraction maximale : nombre d'extractions qui peuvent être en attente sur un consommateur en mode "PULL". Les extractions reçues après que ce nombre est atteint sont ignorées. Valeur par défaut : 0. |
rateLimit | Entier | Non | Limite de débit (nombre de messages par seconde). Valeur par défaut : -1. |
replayPolicy | Alphanumérique. Valeurs possibles : "Instant" ou "Original" | Non | Stratégie de relecture des messages. Pris en compte seulement si deliverPolicy vaut "All", "ByStartSequence" ou "ByStartTime". Valeur par défaut : "Instant". |
sampleFrequency | Alphanumérique | Non | Fréquence d'échantillonnage en pourcentage. Par exemple : 30% ou 30 (la valeur doit être comprise entre 0 et 100). |
startSequence | Entier | Non | Séquence de démarrage d'acquisition des messages dans le flux. Pris en compte si deliverPolicy vaut "ByStartSequence". |
startTime | Alphanumérique au format de durée ISO-8601 | Non | Heure de début d'acquisition des messages dans le flux. Pris en compte si deliverPolicy vaut "ByStartTime". |
↑ Haut de page
Configuration RabbitMQ AMQP
Propriétés de la configuration de connexion config/brokerConfig/brokerConnection
RabbitMQ AMQP Propriétés de la configuration de connexion config/brokerConfig/brokerConnection Détails dans la documentation AMQP Java Client |
Nom | Type | Obligatoire | Description |
---|
username | Alphanumérique | Non | Nom d'utilisateur à utiliser pour la connexion au serveur. Celui-ci peut être saisi en clair ou crypté. Valeur par défaut : "guest". |
password | Alphanumérique | Non | Mot de passe à utiliser pour la connexion au serveur. Celui-ci peut être saisi en clair ou crypté. Valeur par défaut : "guest". |
virtualHost | Alphanumérique | Non | Nom d'hôte virtuel auquel se connecter. Valeur par défaut : / |
host | Alphanumérique | Non | Nom d'hôte auquel se connecter. Valeur par défaut : "localhost". |
port | Entier entre 1 et 65535 | Non | Numéro de port TCP utilisé pour la connexion au serveur. Valeur par défaut : 5672 et 5671 pour SSL. |
handshakeTimeout | Entier | Non | Délai d'expiration (en millisecondes) de l'établissement de la connexion. Valeur par défaut : 10000 (10 secondes). |
shutdownTimeout | Entier | Non | Délai d'attente maximal (en millisecondes) pour l'arrêt du client. Valeur par défaut : 10000 (10 secondes). |
clientProperties | Objet | Non | Table de hachage des propriétés du client. |
topologyRecoveryEnabled | Booléen | Non | Active la récupération de la topologie (queues, exchange, binding, etc.) lors d'une perte de connexion au serveur. Valeur par défaut : "true". |
saslAuthMethod | Alphanumérique. Valeurs possibles : "plain" ou "external" | Non | Méthode d'authentification SASL. Valeur par défaut : "plain". |
useSsl | Booléen | Non | Active le protocole TLS avec les paramètres par défaut pour la connexion au serveur. Valeur par défaut : "false". |
useNio | Booléen | Non | Utilise des E/S non bloquantes (NIO) pour communiquer avec le serveur. Valeur par défaut : "false". |
ssl | Objet | Non | Paramètres de connexion SSL/TLS. |
hostnameVerification | Booléen | Non | Active la vérification du nom d'hôte. Valeur par défaut : "false". |
peerVerification | Booléen | Non | Active la vérification des pairs. Valeur par défaut : "false". |
connection | Objet | Non | Paramètres de la connexion TCP. |
channelMax | Entier positif | Non | Numéro de canal maximal demandé. Valeur par défaut : 2047. |
frameMax | Entier positif | Non | Taille de trame maximale demandée (en octets). Valeur par défaut : 0 (pas de limite). |
heartbeat | Entier positif | Non | Spécifie l'intervalle en secondes entre les vérifications des pulsations entre client et serveur. Valeur 0 pour aucun. Valeur par défaut : 60. |
timeout | Entier positif | Non | Délai d'expiration de la connexion TCP (en millisecondes). Valeur par défaut : 60000 (60 secondes). |
recoveryEnabled | Booléen | Non | Active la récupération automatique de la connexion. Valeur par défaut : "true". |
recoveryInterval | Entier positif | Non | Intervalle de récupération de la connexion (en millisecondes). Valeur par défaut 5000. |
channel | Objet | Non | Paramètres des canaux utilisés dans la connexion au serveur. |
rpcTimeout | Entier positif | Non | Délai de continuation (en millisecondes) pour les appels RPC dans les canaux. Valeur de 0 pour "pas de délai". Valeur par défaut : 10 minutes. |
shouldCheckRpcResponseType | Booléen | Non | Active la vérification du type de réponse des appels RPC. Valeur par défaut : "false". |
nio | Objet | Non | Paramètres de NIO. Pris en compte is useNio vaut "true". |
readByteBufferSize | Entier | Non | Taille en octets du ByteBuffer de lecture utilisé dans la boucle NIO. Valeur par défaut : 32768. |
writeByteBufferSize | Entier | Non | Taille en octets du ByteBuffer d'écriture utilisé dans la boucle NIO. Valeur par défaut : 32768. |
nbIoThreads | Entier | Non | Nombre maximum de threads/tâches utilisés pour NIO. Valeur par défaut : 1. |
writeEnqueuingTimeoutInMs | Entier | Non | Délai d'attente pour la mise en file d'attente des trames sortantes (en millisecondes). Valeur par défaut : 10000. |
writeQueueCapacity | Entier | Non | Capacité de la file d'attente utilisée pour les trames sortantes. Valeur par défaut : 10000. |
↑ Haut de page
Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic
RabbitMQ AMQP Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic Détails dans la documentation AMQP Java Client |
Nom | Type | Obligatoire | Description |
---|
consumerTag | Alphanumérique | Non | Identifiant du souscripteur. Si non renseigné, l'identifiant est fixé par le souscripteur natif. |
consumerPrefetchCount | Entier entre 0 et 65535 | Non | Nombre maximum de messages que le serveur délivrera. Valeur par défaut : 0 (illimité). |
autoAck | Booléen | Non | Active l'acquittement automatique des messages. Valeur par défaut : "false". |
exclusiveConsumer | Booléen | Non | Définit le souscripteur comme étant le consommateur exclusif de la queue associée. Valeur par défaut : "false". |
consumerArgs | Objet | Non | Propriétés du consommateur. |
xPriority | Entier | Non | Priorité du consommateur au sein d'un groupe. Valeur par défaut : 0. |
queue | Objet | Oui | Propriétés de la queue associée au consommateur. |
name | Alphanumérique non vide | Oui | Nom de la queue. |
declarePassive | Booléen | Non | Utilise une queue existante dans la topologie (valeur "true") ou crée une nouvelle queue (valeur "false"). Valeur par défaut : "false". |
durable | Booléen | Non | Persistance de la queue. Valeur par défaut : "false". |
autoDelete | Booléen | Non | Durée de vie de la queue. Une queue autoDelete est automatiquement supprimée lorsque le dernier consommateur abonné à cette queue se désabonne. Valeur par défaut : "true". |
exclusive | Booléen | Non | Définit l'exclusivité de la queue. Une queue exclusive est utilisée par une seule connexion et cette queue sera supprimée à la fermeture de cette connexion. Valeur par défaut : "true". |
queueArgs | Objet | Non | Informations complémentaires sur le comportement de la queue. |
xMessageTtl | Entier | Non | Durée de vie des messages dans la queue (en millisecondes). Valeur par défaut : "illimité". |
xExpires | Entier | Non | Durée maximale d'inactivité (pas de souscripteur associé) de la queue avant suppression (en millisecondes). Valeur par défaut : "illimité". |
xMaxLength | Entier | Non | Nombre maximal de messages contenus dans la queue (les messages les plus anciens seront supprimés de la queue si la limite est atteinte). Valeur par défaut : "illimité". |
xMaxLengthBytes | Entier | Non | Nombre maximal d'octets contenus dans la queue (les messages les plus anciens seront supprimés de la queue si la limite est atteinte). Valeur par défaut : "illimité". |
xOverflow | Alphanumérique. Valeurs possibles : "drop-head", "reject-publish" ou "reject-publish-dlx" | Non | Comportement d'une queue pleine lorsqu'elle reçoit un nouveau message. Valeur par défaut : "drop-head". |
xDeadLetterExchange | Alphanumérique | Non | Nom du routeur (exchange) vers lequel republier les messages d'une file d'attente "en lettres mortes" (les messages reçus par la queue dans des conditions particulières). |
xDeadLetterRoutingKey | Alphanumérique | Non | Clé de routage à utiliser dans le cas des messages "en lettres mortes". |
xMaxPriority | Entier entre 1 et 255 | Non | Niveau de priorité maximal que la queue supporte dans la gestion des priorités des messages. Valeur par défaut : "aucun" (pas de gestion de priorité des messages). |
xQueueMode | Alphanumérique. Valeurs possibles : "default" ou "lazy" | Non | Mode de sauvegarde des messages dans la queue. Valeur par défaut : "default". |
xQueueMasterLocator | Alphanumérique. Valeurs possibles : "min-masters", "client-local" ou "random" | Non | Emplacement de la queue maître dans un environnement serveur distribué. |
bind | Liste d'objets Bind | Non | Liste des informations de liaison de la queue à un routeur. |
[n] | Objet | Oui | Informations de liaison de la queue à un routeur. |
routingKey | Alphanumérique | Non | Clé de routage utilisée pour lier le routeur à la queue. |
bindArgs | Objet | Non | Table de hachage des propriétés de liaison entre le routeur et la queue (couples de <clé alphanumérique, valeur> utilisés comme paramètres lors de la liaison). Exemple de clé "x-match" (pour routeur de type "Headers"). |
exchange | Objet | Non | Information sur le routeur lié à la queue. |
name | Alphanumérique | Oui | Nom du routeur lié à la queue. |
type | Alphanumérique. Valeurs possibles : "direct", "fanout", "headers" ou "topic" | Oui | Type de routeur lié à la queue. |
durable | Booléen | Non | Persistance du routeur. Valeur par défaut : "false". |
autoDelete | Booléen | Non | Durée de vie du routeur. Valeur par défaut : "false". |
declarePassive | Booléen | Non | Utilise un routeur existant dans la topologie ou crée un nouveau routeur. Valeur par défaut : "false". |
exchangeArgs | Objet | Non | Informations complémentaires sur le comportement du routeur |
alternateExchange | Alphanumérique | Non | Nom d'un routeur alternatif utilisé lorsque le routeur n'est pas capable de router un message. |
↑ Haut de page
Configuration Redis Pub/Sub
Propriétés de la configuration de connexion config/brokerConfig/brokerConnection
Redis Pub/Sub Propriétés de la configuration de connexion config/brokerConfig/brokerConnection Détails dans la documentation Lettuce Redis Client |
Nom | Type | Obligatoire | Description |
---|
redisType | Alphanumérique. Valeurs possibles : "standalone" ou "cluster" | Non | Type de serveur Redis à utiliser. Value par défaut : "standalone". |
redisURI | Alphanumérique | Non | URI du serveur Redis utilisé pour la connexion. |
clientName | Alphanumérique | Non | Nom du client. |
redisURIObj | Objet | Non | Informations de connexion utilisée pour la connexion à un serveur Redis. Pris en compte si "redisURI" n'est pas renseigné. |
username | Alphanumérique | Non | Nom d'utilisateur utilisé pour la connexion. Celui-ci peut être saisi en clair ou crypté. |
password | Alphanumérique | Non | Mot de passe utilisé pour la connexion. Celui-ci peut être saisi en clair ou crypté. |
database | Entier positif | Non | Base de données à laquelle se connecter sur le serveur Redis. Pris en compte si redisType vaut "standalone". Valeur par défaut : 0. |
ssl | Booléen | Non | Utilise une connexion SSL. Valeur par défaut : "false". |
startTls | Booléen | Non | Active StartTLS avec la connexion SSL. Valeur par défaut : "false". |
timeout | Alphanumérique au format de durée ISO-8601 | Non | Temps d'attente maximum pour l'établissement de la connexion. Valeur par défaut : "PT60S". |
sslVerifyPeer | Booléen | Non | Active la vérification par les pairs. Valeur par défaut : "false". |
sslVerifyPeerMode | Alphanumérique. Valeurs possibles : "CA", "FULL" ou "NONE" | Non | Mode de vérification par les pairs. Pris en compte si sslVerifyPeer vaut true. Valeur par défaut : "FULL". |
host | Alphanumérique non vide | Oui | Nom d'hôte du serveur Redis. |
port | Entier entre 1 et 65535 | Non | Numéro de port TCP utilisé pour la connexion au serveur. Valeur par défaut : 6379. |
clientOptions | Objet | Non | Options permettant le contrôle du comportement du client Redis. |
autoReconnect | Booléen | Non | Active la reconnexion automatique en cas de perte de connexion. Valeur par défaut : "true". |
reconnectCloseTimeout | Entier positif | Non | Délai d'attente de tentative de reconnexion réussie avant de fermer définitivement le souscripteur. Pris en compte si autoReconnect vaut "true". Valeur par défaut : "pas de délai d'attente". |
protocolVersion | Alphanumérique. Valeurs possibles : "RESP2" ou "RESP3" | Non | Version du protocole à utiliser pour la connexion. Valeur par défaut : "RESP3". |
commandsTimeout | Alphanumérique au format de durée ISO-8601 | Non | Délai d'attente maximal à une réponse de commande au serveur. Valeur par défaut : "pas de délai d'attente". |
pingBeforeActivateConnection | Booléen | Non | Définit l'envoi d'un PING avant d'activer la connexion. Pris en compte si protocolVersion vaut "RESP2". Valeur par défaut : "true". |
↑ Haut de page
Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic
Redis Pub/Sub Propriétés de la configuration de souscription config/brokerConfig/subscribeTopic Détails dans la documentation Lettuce Redis Client |
Nom | Type | Obligatoire | Description |
---|
| Alphanumérique. Valeurs possibles : "byteArray", "utf8String", "asciiString" ou "string(<encoding>)" | Non | Type de la charge utile des messages, ainsi que des channels/patterns à souscrire. Les valeurs "utf8String", "asciiString" et "string(<encoding>)" indiquent que la charge utile (et les channels/patterns) est alphanumérique. - La valeur "string(<encoding>)" permet de définir un encodage de caractères spécifiques. Cette valeur d'encodage doit faire partie du registre des jeux de caractères définis par l'IANA. De plus, il doit faire partie des jeux de caractères supportés par la JVM Java.
- La valeur "byteArray" indique que la charge utile (et les channels/patterns) est un tableau d'octets. Dans ce cas, les valeurs associées aux propriétés channels/patterns (décrites plus bas) doivent être des chaînes alphanumériques encodées en Base 64 (tableau d'octets exprimé sous la forme alphanumérique).
Valeur par défaut : "utf8String". |
channels | Liste d'alphanumériques non vide | Non | Liste des channels auxquels souscrire. |
patterns | Liste d'alphanumériques non vide | Non | Liste des pattern de channels auxquels souscrire. |
↑ Haut de page
Fichier subscribersConf.yml
Ce fichier au format YAML (encodage UTF-8) permet de décrire statiquement l'ensemble des souscripteurs à démarrer au lancement de l'AMBSS. De plus, lors de la création de nouveaux souscripteurs via les API REST, il est possible de sauvegarder la configuration de ceux-ci dans le fichier subscribersConf.yml.
La structure de ce fichier est un objet ayant deux propriétés (ou sections) :
- configurations : Liste des configurations factorisées
- subscribers : Liste des souscripteurs
configurations:
-
subscribers:
-
|
configurations:
-
subscribers:
- id: processOrderMRK8
startOnCreation: true
config:
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerTag: AMQP1_MRK8
autoAck: false
queue:
declarePassive: true
name: order_event_queue
|
↑ Haut de page
Factorisation de la configuration
Lors de l'écriture des souscripteurs, il peut arriver de devoir dupliquer des blocs d'informations identiques (par l'exemple l'objet brokerConnection dans le cas de souscripteurs connectés au même courtier ou l'objet subscribeTopic dans le cas de souscripteurs abonnés au même sujet).
Cette redondance descriptive d'information peut être évitée en plaçant ces éléments de configuration dans la section configurations du fichier subscribersConf.yml et en déclarant, dans la section subscribers, les souscripteurs qui ne contiendront plus les éléments de configuration redondants mais une référence à ceux-ci dans la section configurations.
Section configurations
Elle regroupe une liste d'objets de configuration : chaque objet est identifié par un identifiant unique et regroupe les propriétés de l'objet config d'un souscripteur :
Nom | Type | Obligatoire | Description |
---|
id | Alphanumérique | Non | Identifiant alphanumérique de l'objet configuration |
adeliaPoolName | Alphanumérique | Non | Nom du pool nommé Adélia utilisé pour les connexions BD |
adeliaPgm | Objet | Non | Informations relatives au programme EADELIA associé |
| Alphanumérique | Oui | Nom du fichier objet issu de la génération L3G du programme EADELIA associé |
javaPackage | Alphanumérique | Non | Nom du package Java défini pour la génération L3G du programme EADELIA associé |
parameters | Liste d'alphanumériques | Non | Liste des paramètres alphanumériques passés au programme EADELIA associé lors de son exécution |
customObjectMapper | Alphanumérique | Non | Identifiant du Java Bean défini dans le fichier beans-context.xml, permettant de configurer les propriétés de transformation d'objet JSON en instance de classe Adélia |
brokerConfig | Objet | Non | Informations relatives au souscripteur natif |
factory | Objet | Non | Informations relatives à la fabrique Java responsable de la création du souscripteur Adélia |
id | Alphanumérique | Oui | Nom complet de la classe Java fabrique |
parameters | Objet | Non | Table de hachage (couples de <clé alphanumérique, valeur> utilisés comme paramètres lors de la création de la fabrique) |
brokerConnection | Objet | Non | Configuration spécifique des paramètres de connexion du souscripteur natif au courtier ciblé |
subscribeTopic | Objet | Non | Configuration spécifique des paramètres d'abonnement du souscripteur natif au courtier ciblé |
Un objet configuration peut être incomplet et ne pas renseigner toutes les propriétés adeliaPoolName, adeliaPgm et brokerConfig
configurations:
- id: fullConfig
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
- id: partialConfigAdeliaPgm
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
- id: partialConfigBrokerConfig
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
- id: partialConfigBrokerConnection
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribers:
-
Dans l'exemple, la section configurations est composée de trois objets de configuration : le premier (fullConfig) décrit une configuration complète alors que les trois autres (partialConfigAdeliaPgm, partialConfigBrokerConfig et partialConfigBrokerConnection) décrivent des configurations incomplètes.
Section subscribers
Comme vu précédemment, cette section regroupe l'ensemble des descriptions de souscripteurs Adélia : chaque description de souscripteur doit être complète (chaque propriété décrite comme obligatoire doit être présente).
Cependant, il est possible de décrire un souscripteur en faisant référence, dans son objet config à un objet de configuration présent dans la section configurations. Dans ce cas, la description du souscripteur se déduit en remplaçant toutes les références utilisées par les objets référencés : la description résultat doit être complète pour être une description valide de souscripteur Adélia.
Syntaxe d'une référence
La syntaxe d'une référence à un objet de configuration déclaré dans la section configurations est la suivante :
'/configurations/<id de l'objet de configuration>'
Exemples :
'/configurations/fullConfig'
'/configurations/partialConfigAdeliaPgm'
'/configurations/partialConfigBrokerConfig'
Utilisation d'une référence
Dans la description d'un souscripteur, l'utilisation d'une ou plusieurs références se fait dans l'objet config.
Valeur de config
Lorsque l'objet config a pour valeur une référence, l'ensemble des propriétés de l'objet de configuration référencé (sauf la propriété "id") deviennent les propriétés de l'objet config
configurations:
- id: fullConfig
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
subscribers:
- id: subUsingFullConfig
startOnCreation: true
config: '/configurations/fullConfig'
Pour utiliser plusieurs références, il faut les placer dans une liste. Dans ce cas, l'objet config est le résultat de la fusion des ensembles des propriétés des objets de configuration référencés (sauf les propriété "id") en commençant par la référence d'index 1 dans la liste, jusqu'à n.
Dans le cas ou les objets de configuration référencés décrivent les mêmes propriétés, les valeurs des propriétés issues de la référence d'index n + 1 sont prioritaires par rapport à celles issues de la référence d'index n dans le processus de fusion.
configurations:
- id: partialConfigAdeliaPgm
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
- id: partialConfigBrokerConfig
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
subscribers:
- id: subUsingTwoPartialConfig
startOnCreation: true
config:
- '/configurations/partialConfigAdeliaPgm'
- '/configurations/partialConfigBrokerConfig'
Attribut '$ref' de config
Il est possible dans l'objet config d'utiliser des références et des propriétés issues de cet objet. Pour cela, la référence (ou la liste de références) est fixée via la propriété de nom "$ref". Lors du processus de fusion, les propriétés "directes" de l'objet config sont prioritaires par rapport aux propriétés des objets de configuration référencés.
configurations:
- id: partialConfigAdeliaPgm
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
- id: partialConfigBrokerConnection
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribers:
- id: subUsingTwoPartialConfigAndComplete
startOnCreation: true
config:
$ref:
- '/configurations/partialConfigAdeliaPgm'
- '/configurations/partialConfigBrokerConnection'
brokerConfig:
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
Dans les exemples qui précèdent, tous les quatre souscripteurs décrits sont identiques :
configurations:
- id: fullConfig
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
- id: partialConfigAdeliaPgm
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
- id: partialConfigBrokerConfig
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
- id: partialConfigBrokerConnection
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribers:
- id: processOrderMRK8
startOnCreation: true
config:
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: guest
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
- id: subUsingFullConfig
startOnCreation: true
config: '/configurations/fullConfig'
- id: subUsingTwoPartialConfig
startOnCreation: true
config:
- '/configurations/partialConfigAdeliaPgm'
- '/configurations/partialConfigBrokerConfig'
- id: subUsingTwoPartialConfigAndComplete
startOnCreation: true
config:
$ref:
- '/configurations/partialConfigAdeliaPgm'
- '/configurations/partialConfigBrokerConnection'
brokerConfig:
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
↑ Haut de page
Chiffrement de propriétés
Lors de la description d'un souscripteur il est possible de crypter certaines valeurs associées à des propriétés relatives à des données sensibles (comme les noms d'utilisateur ou les mots de passe). Le processus de chiffrement s'appuie sur un algorithme de chiffrement asymétrique RSA256 basé sur les clés contenus dans le keystore nommé RSJwtSecurity.key (qui sert également par défaut à chiffer/déchiffrer les tokens JWT utilisés pour l'authentification à l'AMBSS lorsque la sécurité est activée).
Pour indiquer qu'une valeur de propriété est chiffrée, il est nécessaire de préfixer celle-ci (qui est une valeur alphanumérique encodée en Base 64) par la chaîne "{RSA}".
Exemple :
id: processOrderMRK8
startOnCreation: true
config:
adeliaPgm:
javaPackage: my.company
objectFileName: AMQP1
parameters:
- 456
- MR_K_8
brokerConfig:
factory:
id: com.hardis.adelia.ambss.rabbitmq.amqp.RabbitmqAMQPSubscriberFactory
brokerConnection:
password: "{RSA}duccMNtKDresdT5V4pEp+Uqd/j7KTT8LmCHSTIrx4eHtO/SIGrmFUFAc/4qtUjCpFow/rXMp6AZmS0wNNbmjx2m8NdNqDXKWXjcfDpyUGQyK+5m+ibE9PC6xSUqxp7jJ5xRl/N2F8+lVZ6MtT0gshgMm65ShLj2nwZ2F+DkrIbMs3c5A44IdOFeRq3zrK4lYYzNL/US1N0nHGqm5rn/dmtn8BmJ3HBOAhbk3N+KU6ugOB1T/E3HJDuEEeO4/PNDL9W7nzdCwVm7RSpOEqqCKbq7JeqNo/H1RIQu+NSj/f7dl5fQ1HxEWGKo9KmKbGIan61hTtor9M/wUcDOIoUnMZQ=="
username: guest
subscribeTopic:
consumerPrefetchCount: 1000
autoAck: false
queue:
declarePassive: true
name: order_event_queue
Remarque : Il est possible de paramétrer les chaînes alphanumérique de préfixe et de suffixe à ajouter aux valeurs chiffrées à l'aide des deux propriétés suivantes, définies dans les fichiers de configuration application.yml et application-dev.yml :
- ambss.encryptor.property.prefix (valeur par défaut : "{RSA}"),
- ambss.encryptor.property.suffix (valeur par défaut : aucune).
Le chiffrement d'une valeur alphanumérique se fait à l'aide de la commande suivante :
java -cp "%ADELIWS%javarun\*" com.hardis.jwtprovider.JwtKeyTool -encode -keyfile "<Path to AMBSS install dir>\extdConfig\RSJwtSecurity.key" "<valeur alphanumérique à chiffrer>"
Il est possible de changer la valeur du keystore RSJwtSecurity.key livré par défaut dans l'AMBSS à l'aide de la commande suivante :
java -cp "%ADELIWS%javarun\*" com.hardis.jwtprovider.JwtKeyTool -generate "<Path to AMBSS install dir>\extdConfig\RSJwtSecurity.key"
Attention : Si vous avez changé la valeur du keystore RSJwtSecurity.key et que vous utilisez le serveur d'authentification autonome %adeliws%/javarun/jwtProviderStandAlone/jwtProviderStandAlone.war avec le keystore par défaut (qui est le même fichier RSJwtSecurity.key ), alors vous devez copier le fichier du keystore nouvellement créé à l'emplacement défini dans le fichier META-INF\context.xml de l'application web jwtProviderStandAlone installée.
↑ Haut de page
Etat d'un souscripteur
L'AMBSS ne propose pas de console de supervision des souscripteurs Adélia.
Cependant, il existe plusieurs canaux pour monitorer l'exécution des souscripteurs.
Via le courtier
Certains courtiers mettent à disposition des outils pour monitorer l'état des consommateurs.
Par exemple, RabbitMQ offre, via l'installation d'une extension (RabbitMQ Management plugin), une console Web de monitoring.
Via les log
L'analyse des logs produites par le runtime de l'AMBSS et les souscripteurs natifs permettent de connaître l'état des souscripteurs (définir les niveaux de log voulus dans le fichier application.yml).
Via le programme EADELIA
Lorsqu'une erreur est détectée par le souscripteur natif, celle-ci est envoyé au programme EADELIA qui en est informé. Suivant la nature de l'erreur, celle-ci peut provoquer l'arrêt du souscripteur.
Via les API REST
Parmi les API proposées, une permet de lire la description d'un souscripteur ainsi que son état (démarré, arrêté, en attente de message, en cours de traitement de message, en erreur).
↑ Haut de page