Compartir vía


Uso de Azure Service Bus con JMS

Este artículo se aplica a: ✔️ Versión 4.14.0 ✔️ versión 5.8.0

En este artículo se describe cómo usar Azure Service Bus con la API de JMS integrada en el marco de Spring JMS.

Debe proporcionar una cadena de conexión de Azure Service Bus, que se analiza en el nombre de usuario de inicio de sesión, la contraseña y el URI remoto para el agente AMQP.

Configuración de dependencias

Agregue las siguientes dependencias si desea migrar la aplicación Spring JMS para usar Azure Service Bus.

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

Configuración

En la tabla siguiente se describen las propiedades configurables al usar la compatibilidad con Spring JMS:

Propiedad Descripción
spring.jms.servicebus.connection-string La cadena de conexión de Azure Service Bus, para cuando quiera proporcionar directamente el cadena de conexión.
spring.jms.servicebus.topic-client-id Identificador de cliente de JMS. Sólo funciona para el topicJmsListenerContainerFactory bean.
spring.jms.servicebus.enabled Valor que indica si se va a habilitar la configuración automática de JMS de Servive Bus. El valor predeterminado es true.
spring.jms.servicebus.idle-timeout La duración del tiempo de espera de inactividad de la conexión que indica cuánto tiempo espera que el cliente de Service Bus mantenga activa una conexión cuando no se entregue ningún mensaje. El valor predeterminado es 2m.
spring.jms.servicebus.pricing-tier Nivel de precio de Azure Service Bus. Los valores admitidos son premium y estándar. El nivel Premium usa Java Message Service (JMS) 2.0, mientras que el nivel estándar usa JMS 1.1 para interactuar con Azure Service Bus.
spring.jms.servicebus.listener.reply-pub-sub-domain Valor que indica si el tipo de destino de respuesta es un tema. Sólo funciona para el topicJmsListenerContainerFactory bean.
spring.jms.servicebus.listener.phase Fase en la que se debe iniciar y detener este contenedor.
spring.jms.servicebus.listener.reply-qos-settings Configura el objeto QosSettings que se va a usar al enviar una respuesta.
spring.jms.servicebus.listener.subscription-durable Valor que indica si se debe hacer que la suscripción sea duradera. Sólo funciona para el topicJmsListenerContainerFactory bean. El valor predeterminado es true.
spring.jms.servicebus.listener.subscription-shared Valor que indica si se va a compartir la suscripción. Sólo funciona para el topicJmsListenerContainerFactory bean.
spring.jms.servicebus.pool.block-if-full Valor que indica si se va a bloquear cuando se solicita una conexión y el grupo está lleno. Establézcalo en false para iniciar en JMSException su lugar.
spring.jms.servicebus.pool.block-if-full-timeout El período de bloqueo antes de iniciar una excepción si el grupo sigue lleno.
spring.jms.servicebus.pool.enabled Valor que indica si se debe crear un JmsPoolConnectionFactory , en lugar de un objeto normal ConnectionFactory.
spring.jms.servicebus.pool.idle-timeout Tiempo de espera de inactividad del grupo de conexiones.
spring.jms.servicebus.pool.max-connections Número máximo de conexiones agrupadas.
spring.jms.servicebus.pool.max-sessions-per-connection Número máximo de sesiones agrupadas por conexión en el grupo.
spring.jms.servicebus.pool.time-between-expiration-check El tiempo de suspensión entre las ejecuciones del subproceso de expulsión de conexión inactiva. Cuando es negativo, no se ejecuta ningún subproceso de expulsión de conexión inactiva.
spring.jms.servicebus.pool.use-anonymous-producers Valor que indica si se va a usar solo una instancia anónima MessageProducer . Establézcalo en false para crear uno MessageProducer cada vez que sea necesario.
spring.jms.servicebus.prefetch-policy.all Valor de reserva de la opción de captura previa en este espacio de nombres de Service Bus. El valor predeterminado es 0.
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch Número de captura previa para el tema duradero. El valor predeterminado es 0.
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch Número de captura previa para el explorador de colas. El valor predeterminado es 0.
spring.jms.servicebus.prefetch-policy.queue-prefetch Número de captura previa para la cola. El valor predeterminado es 0.
spring.jms.servicebus.prefetch-policy.topic-prefetch Número de captura previa del tema. El valor predeterminado es 0.

Nota:

Se omite la configuración general de Spring JMS para abreviar.

Para obtener más información, consulte documento de Spring JMS.

Uso básico

Uso de la cadena de conexión de Service Bus

La manera más sencilla de conectarse a la aplicación Service Bus para Spring JMS es con el cadena de conexión.

Agregue las siguientes propiedades y es bueno ir.

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

Nota:

El valor predeterminado habilitado ConnectionFactory es CachingConnectionFactory, que agrega Session almacenamiento en caché, así como MessageProducer almacenamiento en caché. Si desea activar la característica de agrupación de conexiones de JmsPoolConnectionFactory, establezca en truespring.jms.servicebus.pool.enabled . Puede encontrar otras opciones de configuración de agrupación (propiedades con prefijo spring.jms.servicebus.pool.) en la sección Configuración .

Ejemplos

Para más información, consulte el repositorio azure-spring-boot-samples en GitHub.