Menggunakan Azure Bus Layanan dengan JMS

Artikel ini berlaku untuk: ✔️ Versi 4.14.0 ✔️ Versi 5.8.0

Artikel ini menjelaskan cara menggunakan Azure Bus Layanan dengan JMS API yang terintegrasi ke dalam kerangka kerja Spring JMS.

Anda harus menyediakan Bus Layanan string koneksi Azure, yang diuraikan ke dalam nama pengguna masuk, kata sandi, dan URI jarak jauh untuk broker AMQP.

Penyiapan dependensi

Tambahkan dependensi berikut jika Anda ingin memigrasikan aplikasi Spring JMS anda untuk menggunakan Azure Bus Layanan.

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

Konfigurasi

Tabel berikut menjelaskan properti yang dapat dikonfigurasi saat menggunakan dukungan Spring JMS:

Properti Deskripsi
spring.jms.servicebus.connection-string Azure Bus Layanan string koneksi, saat Anda ingin menyediakan string koneksi secara langsung.
spring.jms.servicebus.topic-client-id ID klien JMS. Hanya bekerja untuk topicJmsListenerContainerFactory kacang.
spring.jms.servicebus.enabled Nilai yang menunjukkan apakah akan mengaktifkan konfigurasi otomatis JMS Bus Servive. Nilai defaultnya adalah true.
spring.jms.servicebus.idle-timeout Durasi batas waktu diam koneksi yang menunjukkan berapa lama klien mengharapkan Bus Layanan untuk menjaga koneksi tetap hidup ketika tidak ada pesan yang dikirimkan. Nilai defaultnya adalah 2m.
spring.jms.servicebus.pricing-tier Tingkat Harga Azure Bus Layanan. Nilai yang didukung adalah premium dan standar. Tingkat premium menggunakan Java Message Service (JMS) 2.0, sementara tingkat standar menggunakan JMS 1.1 untuk berinteraksi dengan Azure Bus Layanan.
spring.jms.servicebus.listener.reply-pub-sub-domain Nilai yang menunjukkan apakah jenis tujuan balasan adalah topik. Hanya bekerja untuk topicJmsListenerContainerFactory kacang.
spring.jms.servicebus.listener.phase Fase di mana kontainer ini harus dimulai dan dihentikan.
spring.jms.servicebus.listener.reply-qos-settings QosSettings Mengonfigurasi untuk digunakan saat mengirim balasan.
spring.jms.servicebus.listener.subscription-durable Nilai yang menunjukkan apakah akan membuat langganan tahan lama. Hanya bekerja untuk topicJmsListenerContainerFactory kacang. Nilai defaultnya adalah true.
spring.jms.servicebus.listener.subscription-shared Nilai yang menunjukkan apakah akan membuat langganan dibagikan. Hanya bekerja untuk topicJmsListenerContainerFactory kacang.
spring.jms.servicebus.pool.block-if-full Nilai yang menunjukkan apakah akan memblokir saat koneksi diminta dan kumpulan penuh. Atur ke false untuk melempar sebagai JMSException gantinya.
spring.jms.servicebus.pool.block-if-full-timeout Periode pemblokiran sebelum melempar pengecualian jika kumpulan masih penuh.
spring.jms.servicebus.pool.enabled Nilai yang menunjukkan apakah JmsPoolConnectionFactory harus dibuat, bukan reguler ConnectionFactory.
spring.jms.servicebus.pool.idle-timeout Batas waktu diam kumpulan koneksi.
spring.jms.servicebus.pool.max-connections Jumlah maksimum koneksi terkumpul.
spring.jms.servicebus.pool.max-sessions-per-connection Jumlah maksimum sesi yang dikumpulkan per koneksi di kumpulan.
spring.jms.servicebus.pool.time-between-expiration-check Waktu untuk tidur antara eksekusi utas pengeluaran koneksi diam. Ketika negatif, tidak ada utas pengeluaran koneksi menganggur yang berjalan.
spring.jms.servicebus.pool.use-anonymous-producers Nilai yang menunjukkan apakah hanya menggunakan satu instans anonim MessageProducer . Atur ke false untuk membuatnya MessageProducer setiap kali diperlukan.
spring.jms.servicebus.prefetch-policy.all Nilai fallback untuk opsi prefetch di namespace Bus Layanan ini. Nilai defaultnya adalah 0.
spring.jms.servicebus.prefetch-policy.durable-topic-prefetch Jumlah prefetch untuk topik tahan lama. Nilai defaultnya adalah 0.
spring.jms.servicebus.prefetch-policy.queue-browser-prefetch Jumlah prefetch untuk browser antrean. Nilai defaultnya adalah 0.
spring.jms.servicebus.prefetch-policy.queue-prefetch Jumlah prefetch untuk antrean. Nilai defaultnya adalah 0.
spring.jms.servicebus.prefetch-policy.topic-prefetch Jumlah prefetch untuk topik. Nilai defaultnya adalah 0.

Catatan

Konfigurasi umum Spring JMS dihilangkan untuk singkatnya.

Untuk informasi selengkapnya, lihat Dokumen Spring JMS.

Penggunaan dasar

Menggunakan String koneksi Bus Layanan

Cara paling sederhana untuk terhubung ke Bus Layanan untuk aplikasi Spring JMS adalah dengan string koneksi.

Tambahkan properti berikut dan Anda siap melakukannya.

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

Catatan

Default yang diaktifkan ConnectionFactory adalah CachingConnectionFactory, yang menambahkan Session penembolokan serta MessageProducer penembolokan. Jika Anda ingin mengaktifkan fitur pengumpulan koneksi , JmsPoolConnectionFactoryatur spring.jms.servicebus.pool.enabled ke true. Anda dapat menemukan opsi konfigurasi pengumpulan lainnya (properti dengan awalan spring.jms.servicebus.pool.) di bagian Konfigurasi .

Sampel

Untuk informasi selengkapnya, lihat repositori azure-spring-boot-samples di GitHub.