Utiliser Azure Service Bus avec JMS

Cet article s’applique à : ✔️ Version 4.14.0 ✔️ Version 5.8.0

Cet article explique comment utiliser Azure Service Bus avec l’API JMS intégrée à l’infrastructure Spring JMS.

Vous devez fournir un chaîne de connexion Azure Service Bus, qui est analysé dans le nom d’utilisateur de connexion, le mot de passe et l’URI distant du répartiteur AMQP.

Configuration des dépendances

Ajoutez les dépendances suivantes si vous souhaitez migrer votre application Spring JMS pour utiliser Azure Service Bus.

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>

Configuration

Le tableau suivant décrit les propriétés configurables lors de l’utilisation de la prise en charge de Spring JMS :

Propriété Description
spring.jms.servicebus.connection-string Le chaîne de connexion Azure Service Bus, pour le moment où vous souhaitez fournir la chaîne de connexion directement.
spring.jms.servicebus.topic-client-id ID client JMS. Ne fonctionne que pour le topicJmsListenerContainerFactory haricot.
spring.jms.servicebus.enabled Valeur qui indique s’il faut activer la configuration automatique JMS Servive Bus. La valeur par défaut est true.
spring.jms.servicebus.idle-timeout Durée du délai d’inactivité de la connexion qui indique la durée pendant laquelle le client s’attend à ce que Service Bus conserve une connexion active lorsqu’aucun message n’est remis. La valeur par défaut est 2m.
spring.jms.servicebus.pricing-tier Niveau tarifaire d’Azure Service Bus. Les valeurs prises en charge sont premium et standard. Le niveau Premium utilise Java Message Service (JMS) 2.0, tandis que le niveau standard utilise JMS 1.1 pour interagir avec Azure Service Bus.
spring.jms.servicebus.listener.reply-pub-sub-domain Valeur qui indique si le type de destination de réponse est une rubrique. Ne fonctionne que pour le topicJmsListenerContainerFactory haricot.
spring.jms.servicebus.listener.phase Phase dans laquelle ce conteneur doit être démarré et arrêté.
spring.jms.servicebus.listener.reply-qos-settings Configure l’utilisation lors de l’envoi QosSettings d’une réponse.
spring.jms.servicebus.listener.subscription-durable Valeur qui indique s’il faut rendre l’abonnement durable. Ne fonctionne que pour le topicJmsListenerContainerFactory haricot. La valeur par défaut est true.
spring.jms.servicebus.listener.subscription-shared Valeur qui indique s’il faut partager l’abonnement. Ne fonctionne que pour le topicJmsListenerContainerFactory haricot.
spring.jms.servicebus.pool.block-if-full Valeur qui indique s’il faut bloquer lorsqu’une connexion est demandée et que le pool est plein. Définissez-le sur false pour lever une JMSException valeur à la place.
spring.jms.servicebus.pool.block-if-full-timeout Période de blocage avant de lever une exception si le pool est toujours plein.
spring.jms.servicebus.pool.enabled Valeur qui indique si un JmsPoolConnectionFactory doit être créé, au lieu d’un élément normal ConnectionFactory.
spring.jms.servicebus.pool.idle-timeout Délai d’inactivité du pool de connexions.
spring.jms.servicebus.pool.max-connections Nombre maximal de connexions mises en pool.
spring.jms.servicebus.pool.max-sessions-per-connection Nombre maximal de sessions mises en pool par connexion dans le pool.
spring.jms.servicebus.pool.time-between-expiration-case activée Délai d’attente entre les exécutions du thread d’éviction de connexion inactive. Lorsqu’il est négatif, aucun thread d’éviction de connexion inactif n’est exécuté.
spring.jms.servicebus.pool.use-anonymous-producers Valeur qui indique s’il faut utiliser une seule instance anonyme MessageProducer . Définissez-le pour false créer un MessageProducer à chaque fois qu’un est requis.
spring.jms.servicebus.prefetch-policy.all Valeur de secours de l’option de prérécupération dans cet espace de noms Service Bus. La valeur par défaut est 0.
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch Nombre de prérécupérations pour la rubrique durable. La valeur par défaut est 0.
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch Nombre de prérécupérations pour le navigateur de file d’attente. La valeur par défaut est 0.
spring.jms.servicebus.prefetch-policy.queue-prefetch Nombre de prérécupérations pour la file d’attente. La valeur par défaut est 0.
spring.jms.servicebus.prefetch-policy.topic-prefetch Nombre de prérécupérations pour la rubrique. La valeur par défaut est 0.

Remarque

La configuration générale spring JMS est omise pour un court terme.

Pour plus d’informations, consultez le document Spring JMS.

Utilisation de base

Utiliser la chaîne de connexion Service Bus

La façon la plus simple de se connecter à l’application Service Bus pour Spring JMS est avec le chaîne de connexion.

Ajoutez les propriétés suivantes et vous pouvez y accéder.

spring:
  jms:
    servicebus:
      connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING}
      pricing-tier: ${PRICING_TIER}

Remarque

La valeur par défaut est ConnectionFactory le CachingConnectionFactory, qui ajoute Session la mise en cache ainsi que MessageProducer la mise en cache. Si vous souhaitez activer la fonctionnalité de regroupement de connexions de JmsPoolConnectionFactory, définie spring.jms.servicebus.pool.enabled sur true. Vous trouverez d’autres options de configuration de regroupement (propriétés avec préfixe spring.jms.servicebus.pool.) dans la section Configuration .

Exemples

Pour plus d’informations, consultez le référentiel azure-spring-boot-samples sur GitHub.