Verwenden von Azure Service Bus mit JMS
Dieser Artikel bezieht sich auf: ✔️ Version 4.14.0 ✔️ Version 5.8.0
In diesem Artikel wird beschrieben, wie Sie Azure Service Bus mit der JMS-API verwenden, die in das Spring JMS-Framework integriert ist.
Sie müssen einen Azure Service Bus Verbindungszeichenfolge bereitstellen, der in den Anmeldebenutzernamen, das Kennwort und den Remote-URI für den AMQP-Broker analysiert wird.
Setup von Abhängigkeiten
Fügen Sie die folgenden Abhängigkeiten hinzu, wenn Sie Ihre Spring JMS-Anwendung migrieren möchten, um Azure Service Bus zu verwenden.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>
Konfiguration
In der folgenden Tabelle werden die konfigurierbaren Eigenschaften bei Verwendung der Spring JMS-Unterstützung beschrieben:
Eigenschaft | Beschreibung |
---|---|
spring.jms.servicebus.connection-string | Der Azure Service Bus Verbindungszeichenfolge, wenn Sie die Verbindungszeichenfolge direkt bereitstellen möchten. |
spring.jms.servicebus.topic-client-id | Die JMS-Client-ID. Funktioniert nur für die topicJmsListenerContainerFactory Bohnen. |
spring.jms.servicebus.enabled | Ein Wert, der angibt, ob servive Bus JMS autoconfiguration aktiviert werden soll. Der Standardwert ist true . |
spring.jms.servicebus.idle-timeout | Die Zeitüberschreitungsdauer der Verbindung, die angibt, wie lange der Client erwartet, dass service bus eine Verbindung aktiv bleibt, wenn keine Nachrichten übermittelt werden. Der Standardwert ist 2m . |
spring.jms.servicebus.pricing-tier | Das Azure Service Bus-Preisniveau. Unterstützte Werte sind Premium und Standard. Premium-Stufe verwendet Java Message Service (JMS) 2.0, während die Standardebene JMS 1.1 für die Interaktion mit Azure Service Bus verwendet. |
spring.jms.servicebus.listener.reply-pub-sub-do Standard | Ein Wert, der angibt, ob der Antwortzieltyp ein Thema ist. Funktioniert nur für die topicJmsListenerContainerFactory Bohnen. |
spring.jms.servicebus.listener.phase | Die Phase, in der dieser Container gestartet und beendet werden soll. |
spring.jms.servicebus.listener.reply-qos-settings | Konfiguriert die QosSettings Verwendung beim Senden einer Antwort. |
spring.jms.servicebus.listener.subscription-durable | Ein Wert, der angibt, ob das Abonnement dauerhaft sein soll. Funktioniert nur für die topicJmsListenerContainerFactory Bohnen. Der Standardwert ist true . |
spring.jms.servicebus.listener.subscription-shared | Ein Wert, der angibt, ob das Abonnement freigegeben werden soll. Funktioniert nur für die topicJmsListenerContainerFactory Bohnen. |
spring.jms.servicebus.pool.block-if-full | Ein Wert, der angibt, ob blockiert werden soll, wenn eine Verbindung angefordert wird und der Pool voll ist. Legen Sie ihn auf "false" fest, um stattdessen einen JMSException Fehler auszuwerfen. |
spring.jms.servicebus.pool.block-if-full-timeout | Der Sperrzeitraum, bevor eine Ausnahme ausgelöst wird, wenn der Pool noch voll ist. |
spring.jms.servicebus.pool.enabled | Ein Wert, der angibt, ob anstelle eines regulären ConnectionFactory Werts ein JmsPoolConnectionFactory Wert erstellt werden soll. |
spring.jms.servicebus.pool.idle-timeout | Timeout des Verbindungspools im Leerlauf. |
spring.jms.servicebus.pool.max-connections | Die maximale Anzahl von poolierten Verbindungen. |
spring.jms.servicebus.pool.max-sessions-per-connection | Die maximale Anzahl von Poolsitzungen pro Verbindung im Pool. |
spring.jms.servicebus.pool.time-between-expiration-check | Die Zeit für den Ruhezustand zwischen Läufen des Leerlauf-Verbindungs-Eviction-Threads. Wenn negativ, wird kein Leerlaufverbindungsthread ausgeführt. |
spring.jms.servicebus.pool.use-anonymous-producers | Ein Wert, der angibt, ob nur eine anonyme MessageProducer Instanz verwendet werden soll. Legen Sie fest, false dass sie jedes Mal erstellt MessageProducer werden soll, wenn eins erforderlich ist. |
spring.jms.servicebus.prefetch-policy.all | Der Fallbackwert für die Option "Prefetch" in diesem Service Bus-Namespace. Der Standardwert ist 0 . |
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch | Die Anzahl der Vorabstarts für ein dauerhaftes Thema. Der Standardwert ist 0 . |
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch | Die Anzahl der Vorabrufe für den Warteschlangenbrowser. Der Standardwert ist 0 . |
spring.jms.servicebus.prefetch-policy.queue-prefetch | Die Anzahl der Vorabrufe für die Warteschlange. Der Standardwert ist 0 . |
spring.jms.servicebus.prefetch-policy.topic-prefetch | Die Anzahl der Vorabstarts für das Thema. Der Standardwert ist 0 . |
Hinweis
Die allgemeine Spring JMS-Konfiguration wird für kurze Zeit weggelassen.
Weitere Informationen finden Sie im Spring JMS Document.
Grundlegende Verwendung
Verwenden der ServiceBus-Verbindungszeichenfolge
Die einfachste Möglichkeit zum Herstellen einer Verbindung mit Service Bus für Spring JMS-Anwendung ist die Verbindungszeichenfolge.
Fügen Sie die folgenden Eigenschaften hinzu, und Sie können loslegen.
spring:
jms:
servicebus:
connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING}
pricing-tier: ${PRICING_TIER}
Hinweis
Die Standardeinstellung ConnectionFactory
ist aktiviertCachingConnectionFactory
, wodurch Zwischenspeicherung und MessageProducer
Zwischenspeicherung hinzugefügt Session
werden. Wenn Sie das Verbindungspooling-Feature von JmsPoolConnectionFactory
aktivieren möchten, legen Sie diesen spring.jms.servicebus.pool.enabled
Auf fest true
. Weitere Konfigurationsoptionen für pooling (Eigenschaften mit Präfix spring.jms.servicebus.pool.
) finden Sie im Abschnitt "Konfiguration ".
Beispiele
Weitere Informationen finden Sie im Repository "azure-spring-boot-samples " auf GitHub.