JMS ile Azure Service Bus kullanma
Bu makale şunlar için geçerlidir: ✔️ Sürüm 4.14.0 ✔️ Sürüm 5.8.0
Bu makalede, Spring JMS çerçevesiyle tümleştirilmiş JMS API'siyle Azure Service Bus'ın nasıl kullanılacağı açıklanmaktadır.
AMQP aracısı için oturum açma kullanıcı adı, parola ve uzak URI'sine ayrıştırılan bir Azure Service Bus bağlantı dizesi sağlamanız gerekir.
Bağımlılık kurulumu
Spring JMS uygulamanızı Azure Service Bus kullanacak şekilde geçirmek istiyorsanız aşağıdaki bağımlılıkları ekleyin.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
</dependency>
Yapılandırma
Aşağıdaki tabloda Spring JMS desteği kullanılırken yapılandırılabilir özellikler açıklanmaktadır:
Özellik | Açıklama |
---|---|
spring.jms.servicebus.connection-string | Bağlantı dizesi doğrudan sağlamak istediğiniz zaman için Azure Service Bus bağlantı dizesi. |
spring.jms.servicebus.topic-client-id | JMS istemci kimliği. Sadece fasulye için topicJmsListenerContainerFactory çalışır. |
spring.jms.servicebus.enabled | Servive Bus JMS otomatik yapılandırmanın etkinleştirilip etkinleştirilmeymeyeceğini gösteren değer. Varsayılan değer şudur: true . |
spring.jms.servicebus.idle-timeout | İstemcinin hiçbir ileti teslim edilmemişse Service Bus'ın bağlantıyı ne kadar süreyle canlı tutmasını beklediğini gösteren bağlantı boşta kalma zaman aşımı süresi. Varsayılan değer şudur: 2m . |
spring.jms.servicebus.pricing-tier | Azure Service Bus Fiyat Katmanı. Desteklenen değerler premium ve standarttır. Premium katman Java İleti Hizmeti (JMS) 2.0'ı kullanırken standart katmanda Azure Service Bus ile etkileşime geçmek için JMS 1.1 kullanılır. |
spring.jms.servicebus.listener.reply-pub-sub-domain | Yanıt hedef türünün bir konu başlığı olup olmadığını gösteren değer. Sadece fasulye için topicJmsListenerContainerFactory çalışır. |
spring.jms.servicebus.listener.phase | Bu kapsayıcının başlatılması ve durdurulması gereken aşama. |
spring.jms.servicebus.listener.reply-qos-settings | QosSettings yanıt gönderirken kullanılacak şekilde yapılandırılır. |
spring.jms.servicebus.listener.subscription-durable | Aboneliğin dayanıklı olup olmayacağını gösteren bir değer. Sadece fasulye için topicJmsListenerContainerFactory çalışır. Varsayılan değer şudur: true . |
spring.jms.servicebus.listener.subscription-shared | Aboneliğin paylaşılıp paylaşılmayacağını gösteren değer. Sadece fasulye için topicJmsListenerContainerFactory çalışır. |
spring.jms.servicebus.pool.block-if-full | Bir bağlantı istendiğinde ve havuz dolu olduğunda engellenip engellenmeyeceğini gösteren değer. Bunun yerine oluşturmak JMSException için false olarak ayarlayın. |
spring.jms.servicebus.pool.block-if-full-timeout | Havuz hala doluysa özel durum oluşturmadan önce engelleme süresi. |
spring.jms.servicebus.pool.enabled | Normal ConnectionFactory yerine oluşturulması JmsPoolConnectionFactory gerekip gerekmediğini gösteren değer. |
spring.jms.servicebus.pool.idle-timeout | Bağlantı havuzu boşta kalma zaman aşımı. |
spring.jms.servicebus.pool.max-connections | Havuza alınan bağlantı sayısı üst sınırı. |
spring.jms.servicebus.pool.max-sessions-per-connection | Havuzdaki bağlantı başına havuza alınan oturum sayısı üst sınırı. |
spring.jms.servicebus.pool.time-between-expiration-check | Boşta bağlantı çıkarma iş parçacığı çalıştırmaları arasında uyku süresi. Negatif olduğunda boşta bağlantı çıkarma iş parçacığı çalıştırılır. |
spring.jms.servicebus.pool.use-anonymous-producers | Yalnızca bir anonim MessageProducer örneğin kullanılıp kullanılmayacağını belirten bir değer. Her gerektiğinde oluşturmak MessageProducer için false olarak ayarlayın. |
spring.jms.servicebus.prefetch-policy.all | Bu Service Bus ad alanında prefetch seçeneğinin geri dönüş değeri. Varsayılan değer şudur: 0 . |
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch | Dayanıklı konu için ön koşul sayısı. Varsayılan değer şudur: 0 . |
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch | Kuyruk tarayıcısı için ön koşul sayısı. Varsayılan değer şudur: 0 . |
spring.jms.servicebus.prefetch-policy.queue-prefetch | Kuyruk için ön koşul sayısı. Varsayılan değer şudur: 0 . |
spring.jms.servicebus.prefetch-policy.topic-prefetch | Konu için ön koşul sayısı. Varsayılan değer şudur: 0 . |
Dekont
Spring JMS genel yapılandırması kısaca atlanır.
Daha fazla bilgi için bkz . Spring JMS Belgesi.
Temel kullanım
Service Bus bağlantı dizesini kullanma
Spring JMS uygulaması için Service Bus'a bağlanmanın en basit yolu bağlantı dizesi.
Aşağıdaki özellikleri eklediğinizde hazır olursunuz.
spring:
jms:
servicebus:
connection-string: ${AZURE_SERVICEBUS_CONNECTION_STRING}
pricing-tier: ${PRICING_TIER}
Dekont
Varsayılan olarak etkinConnectionFactory
, önbelleğe alma ve MessageProducer
önbelleğe alma ekleyen Session
değeridirCachingConnectionFactory
. bağlantı havuzu özelliğini JmsPoolConnectionFactory
etkinleştirmek istiyorsanız olarak ayarlayın spring.jms.servicebus.pool.enabled
true
. Yapılandırma bölümünde diğer havuz yapılandırma seçeneklerini (ön ekli spring.jms.servicebus.pool.
özellikler) bulabilirsiniz.
Örnekler
Daha fazla bilgi için GitHub'daki azure-spring-boot-samples deposuna bakın.