Aracılığıyla paylaş


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 ConnectionFactoryyerine 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 JmsPoolConnectionFactoryetkinleştirmek istiyorsanız olarak ayarlayın spring.jms.servicebus.pool.enabledtrue. 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.