共用方式為


搭配 JMS 使用Azure 服務匯流排

本文適用于: ✔️版本 4.14.0 ✔️ 5.8.0

本文說明如何將Azure 服務匯流排與整合至 Spring JMS 架構的 JMS API 搭配使用。

您必須提供Azure 服務匯流排 連接字串,這會剖析為 AMQP 訊息代理程式登入使用者名稱、密碼和遠端 URI。

相依性設定

如果您想要移轉 Spring JMS 應用程式以使用Azure 服務匯流排,請新增下列相依性。

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

組態

下表描述使用 Spring JMS 支援時的可設定屬性:

屬性 說明
spring.jms.servicebus.connection-string 當您想要直接提供連接字串時,Azure 服務匯流排 連接字串。
spring.jms.servicebus.topic-client-id JMS 用戶端識別碼。 topicJmsListenerContainerFactory僅適用于豆子。
spring.jms.servicebus.enabled 值,指出是否啟用 Servive Bus JMS 自動設定。 預設值是 true
spring.jms.servicebus.idle-timeout 連線閒置逾時持續時間,指出用戶端預期在未傳遞訊息時,服務匯流排保持連線運作的時間長度。 預設值是 2m
spring.jms.servicebus.pricing-tier Azure 服務匯流排價格區間。 支援的值為 進階 標準 。 進階版層使用 JAVA Message Service (JMS) 2.0,而標準層則使用 JMS 1.1 與Azure 服務匯流排互動。
spring.jms.servicebus.listener.reply-pub-sub-domain 值,指出回復目的地類型是否為主題。 topicJmsListenerContainerFactory僅適用于豆子。
spring.jms.servicebus.listener.phase 此容器應該啟動和停止的階段。
spring.jms.servicebus.listener.reply-qos-settings 設定 QosSettings 傳送回復時要使用的 。
spring.jms.servicebus.listener.subscription-durable 值,指出是否要讓訂用帳戶持久。 topicJmsListenerContainerFactory僅適用于豆子。 預設值是 true
spring.jms.servicebus.listener.subscription-shared 值,指出是否要讓訂用帳戶共用。 topicJmsListenerContainerFactory僅適用于豆子。
spring.jms.servicebus.pool.block-if-full 值,指出是否要在要求連接且集區已滿時封鎖。 將它設定為 false 以改為擲回 JMSException
spring.jms.servicebus.pool.block-if-full-timeout 如果集區仍然已滿,則擲回例外狀況之前的封鎖期間。
spring.jms.servicebus.pool.enabled 值,指出是否 JmsPoolConnectionFactory 應該建立 ,而不是一般 ConnectionFactory
spring.jms.servicebus.pool.idle-timeout 連線集區閒置逾時。
spring.jms.servicebus.pool.max-connections 集區連線數目上限。
spring.jms.servicebus.pool.max-sessions-per-connection 集區中每個連線的集區會話數目上限。
spring.jms.servicebus.pool.time-between-expiration-check 閒置連線收回執行緒執行之間的睡眠時間。 若為負數,則不會執行閒置連線收回執行緒。
spring.jms.servicebus.pool.use-anonymous-producers 值,指出是否只使用一個匿名 MessageProducer 實例。 將它設定為 false ,以在每次需要時建立一個 MessageProducer
spring.jms.servicebus.prefetch-policy.all 這個服務匯流排命名空間中預先擷取選項的後援值。 預設值是 0
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch 長期主題的預先擷取數目。 預設值是 0
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch 佇列瀏覽器的預先擷取數目。 預設值是 0
spring.jms.servicebus.prefetch-policy.queue-prefetch 佇列的預先擷取數目。 預設值是 0
spring.jms.servicebus.prefetch-policy.topic-prefetch 主題的預先擷取數目。 預設值是 0

注意

簡短省略 Spring JMS 一般設定。

如需詳細資訊,請參閱 Spring JMS 檔

基本使用方式

使用服務匯流排連接字串

連線到 Spring JMS 應用程式服務匯流排最簡單的方式是使用 連接字串。

新增下列屬性,而且您最好繼續。

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

注意

預設啟用 ConnectionFactory 的 是 CachingConnectionFactory ,其會新增 Session 快取和 MessageProducer 快取。 如果您想要啟用 的 JmsPoolConnectionFactory 連線共用功能,請將 設定 spring.jms.servicebus.pool.enabledtrue 。 您可以在 [組態] 區段中找到其他共用組態選項(具有前置詞 spring.jms.servicebus.pool. 的屬性)。

範例

如需詳細資訊,請參閱 GitHub 上的 azure-spring-boot-samples 存放庫。