Usare bus di servizio di Azure con JMS
Questo articolo si applica a: ✔️ Versione 4.14.0 ✔️ versione 5.8.0
Questo articolo descrive come usare bus di servizio di Azure con l'API JMS integrata nel framework Spring JMS.
È necessario fornire un bus di servizio di Azure stringa di connessione, che viene analizzato nel nome utente di accesso, nella password e nell'URI remoto per il broker AMQP.
Configurazione delle dipendenze
Aggiungere le dipendenze seguenti se si vuole eseguire la migrazione dell'applicazione Spring JMS per usare bus di servizio di Azure.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>
Impostazione
Nella tabella seguente vengono descritte le proprietà configurabili quando si usa il supporto spring JMS:
Proprietà | Descrizione |
---|---|
spring.jms.servicebus.connection-string | Il bus di servizio di Azure stringa di connessione, per quando si desidera specificare direttamente il stringa di connessione. |
spring.jms.servicebus.topic-client-id | ID client JMS. Funziona solo per il topicJmsListenerContainerFactory bean. |
spring.jms.servicebus.enabled | Valore che indica se abilitare la configurazione automatica JMS del bus Servive. Il valore predefinito è true . |
spring.jms.servicebus.idle-timeout | Durata del timeout di inattività della connessione che indica per quanto tempo il client prevede bus di servizio mantenere attiva una connessione quando non vengono recapitati messaggi. Il valore predefinito è 2m . |
spring.jms.servicebus.pricing-tier | Livello di prezzo bus di servizio di Azure. I valori supportati sono Premium e Standard. Il livello Premium usa Java Message Service (JMS) 2.0, mentre il livello standard usa JMS 1.1 per interagire con bus di servizio di Azure. |
spring.jms.servicebus.listener.reply-pub-sub-domain | Valore che indica se il tipo di destinazione di risposta è un argomento. Funziona solo per il topicJmsListenerContainerFactory bean. |
spring.jms.servicebus.listener.phase | Fase in cui deve essere avviato e arrestato questo contenitore. |
spring.jms.servicebus.listener.reply-qos-settings | Configura l'oggetto da utilizzare per l'invio QosSettings di una risposta. |
spring.jms.servicebus.listener.subscription-durable | Valore che indica se rendere durevole la sottoscrizione. Funziona solo per il topicJmsListenerContainerFactory bean. Il valore predefinito è true . |
spring.jms.servicebus.listener.subscription-shared | Valore che indica se rendere condivisa la sottoscrizione. Funziona solo per il topicJmsListenerContainerFactory bean. |
spring.jms.servicebus.pool.block-if-full | Valore che indica se bloccare quando viene richiesta una connessione e il pool è pieno. Impostarlo su false per generare un'eccezione JMSException . |
spring.jms.servicebus.pool.block-if-full-timeout | Periodo di blocco prima di generare un'eccezione se il pool è ancora pieno. |
spring.jms.servicebus.pool.enabled | Valore che indica se deve essere creato un oggetto JmsPoolConnectionFactory anziché un normale ConnectionFactory oggetto . |
spring.jms.servicebus.pool.idle-timeout | Timeout di inattività del pool di connessioni. |
spring.jms.servicebus.pool.max-connections | Numero massimo di connessioni in pool. |
spring.jms.servicebus.pool.max-sessions-per-connection | Numero massimo di sessioni in pool per ogni connessione nel pool. |
spring.jms.servicebus.pool.time-between-expiration-check | Tempo di sospensione tra le esecuzioni del thread di rimozione della connessione inattiva. In caso negativo, non viene eseguito alcun thread di rimozione della connessione inattiva. |
spring.jms.servicebus.pool.use-anonymous-producers | Valore che indica se utilizzare una sola istanza anonima MessageProducer . Impostarlo su false per crearne uno MessageProducer ogni volta che è necessario. |
spring.jms.servicebus.prefetch-policy.all | Valore di fallback per l'opzione di prelettura in questo spazio dei nomi bus di servizio. Il valore predefinito è 0 . |
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch | Numero di prelettura per l'argomento durevole. Il valore predefinito è 0 . |
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch | Numero di prelettura per il browser di accodamento. Il valore predefinito è 0 . |
spring.jms.servicebus.prefetch-policy.queue-prefetch | Numero di prelettura per la coda. Il valore predefinito è 0 . |
spring.jms.servicebus.prefetch-policy.topic-prefetch | Numero di prelettura per l'argomento. Il valore predefinito è 0 . |
Nota
La configurazione generale di Spring JMS viene omessa per brevità.
Per altre informazioni, vedere Il documento Spring JMS.
Utilizzo di base
Usare bus di servizio stringa di connessione
Il modo più semplice per connettersi a bus di servizio per l'applicazione Spring JMS è il stringa di connessione.
Aggiungere le proprietà seguenti ed è consigliabile procedere.
spring:
jms:
servicebus:
connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING}
pricing-tier: ${PRICING_TIER}
Nota
L'impostazione predefinita abilitata ConnectionFactory
è , che aggiunge Session
la memorizzazione nella cache e MessageProducer
la memorizzazione nella cache.CachingConnectionFactory
Se si desidera attivare la funzionalità di pool di connessioni di JmsPoolConnectionFactory
, impostare su true
spring.jms.servicebus.pool.enabled
. Nella sezione Configurazione è possibile trovare altre opzioni di configurazione del pool (proprietà con prefisso spring.jms.servicebus.pool.
).
Esempi
Per altre informazioni, vedere il repository azure-spring-boot-samples in GitHub.