Freigeben über


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 ConnectionFactoryWerts 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 JmsPoolConnectionFactoryaktivieren 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.