搭配 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.enabled
為 true
。 您可以在 [組態] 區段中找到其他共用組態選項(具有前置詞 spring.jms.servicebus.pool.
的屬性)。
範例
如需詳細資訊,請參閱 GitHub 上的 azure-spring-boot-samples 存放庫。