Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara menggunakan Spring Cloud Azure dan Spring Messaging Azure Storage Queue. Spring Framework memberikan dukungan ekstensif untuk mengintegrasikan dengan sistem olahpesan.
Pengiriman Pesan Spring dengan Antrian Penyimpanan Azure
Konsep utama
Azure Queue Storage adalah layanan untuk menyimpan pesan dalam jumlah besar. Anda bisa mengakses pesan dari mana saja di dunia melalui panggilan terautentikasi menggunakan HTTP atau HTTPS. Pesan antrean dapat berukuran hingga 64 KB. Antrean dapat berisi jutaan pesan, hingga batas kapasitas total akun penyimpanan. Antrean umumnya digunakan untuk membuat tumpukan tugas yang perlu diproses secara asinkron. Proyek Spring Messaging for Azure Queue Storage menerapkan konsep inti Spring untuk pengembangan solusi olahpesan berbasis bus layanan. Ini menyediakan templat sebagai abstraksi tingkat tinggi untuk mengirim dan menerima pesan. Pustaka ini mempromosikan penggunaan injeksi dependensi dan konfigurasi deklaratif.
Penyiapan dependensi
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-starter</artifactId>
</dependency>
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-messaging-azure-storage-queue</artifactId>
</dependency>
Konfigurasi
Pustaka menyediakan opsi konfigurasi berikut untuk StorageQueueTemplate:
| Harta benda | Tipe | Deskripsi |
|---|---|---|
spring.cloud.azure.message-converter.isolated-object-mapper |
Boolean | Apakah kacang ObjectMapper terisolasi digunakan untuk pengonversi pesan Antrean Penyimpanan. Diaktifkan secara default. |
spring.cloud.azure.storage.queue.enabled |
Boolean | Apakah Antrean Azure Storage diaktifkan. |
spring.cloud.azure.storage.queue.connection-string |
string | Nilai string koneksi Ruang Nama Antrean Penyimpanan. |
spring.cloud.azure.storage.queue.accountName |
string | Nama akun Antrean Penyimpanan. |
spring.cloud.azure.storage.queue.accountKey |
string | Kunci akun Antrean Penyimpanan. |
Penggunaan dasar
Pengonversi pesan Antrean Penyimpanan Kustom
Ada dua cara untuk mengonfigurasi pengonversi pesan Antrean Penyimpanan:
Konfigurasikan properti berikut agar pengonversi pesan Antrean Penyimpanan default menggunakan
ObjectMapperkacang, yang dapat menjadi biji kustomObjectMapperAnda atau yang dikelola oleh Spring Boot:spring: cloud: azure: message-converter: isolated-object-mapper: falseTentukan biji pengonversi pesan Antrean Penyimpanan secara langsung:
@Bean AzureMessageConverter<QueueMessageItem, QueueMessageItem> storageQueueMessageConverter() { JsonMapper jsonMapper = JsonMapper.builder().addModule(new JavaTimeModule()).build(); return new ServiceBusMessageConverter(jsonMapper); }
Mengirim dan menerima pesan ke Antrean Azure Storage
Gunakan langkah-langkah berikut untuk mengirim dan menerima pesan:
Isi opsi konfigurasi kredensial menggunakan salah satu pendekatan berikut:
Untuk kredensial sebagai
DefaultAzureCredential, konfigurasikan properti berikut dalam file application.yml Anda:spring: cloud: azure: storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}Untuk kredensial sebagai string koneksi, konfigurasikan properti berikut dalam file application.yml Anda:
spring: cloud: azure: storage: queue: connection-string: ${AZURE_STORAGE_QUEUE_CONNECTION_STRING}Untuk kredensial sebagai identitas terkelola, konfigurasikan properti berikut dalam file application.yml Anda:
spring: cloud: azure: credential: managed-identity-enabled: true client-id: ${AZURE_CLIENT_ID} profile: tenant-id: <tenant> storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}
Nota
Nilai berikut diizinkan untuk tenant-id: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang pengonversian aplikasi penyewa tunggal Anda, lihat Mengonversi aplikasi penyewa tunggal ke multipenyewa pada Microsoft Entra ID.
Untuk kredensial sebagai perwakilan layanan, konfigurasikan properti berikut dalam file application.yml Anda:
spring: cloud: azure: credential: client-id: ${AZURE_CLIENT_ID} client-secret: ${AZURE_CLIENT_SECRET} profile: tenant-id: <tenant> storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}
Nota
Nilai berikut diizinkan untuk tenant-id: common, organizations, consumers, atau ID penyewa. Untuk informasi selengkapnya tentang nilai ini, lihat bagian Menggunakan endpoint yang salah (akun pribadi dan organisasi) dalam Kesalahan AADSTS50020 - Akun pengguna dari penyedia identitas tidak ada di penyewa. Untuk informasi tentang pengonversian aplikasi penyewa tunggal Anda, lihat Mengonversi aplikasi penyewa tunggal ke multipenyewa pada Microsoft Entra ID.
StorageQueueTemplatedikonfigurasi otomatis. Anda dapat mengotomatiskannya langsung ke kacang Anda sendiri untuk mengirim atau menerima pesan, seperti yang ditunjukkan dalam contoh berikut:@Component public class MyBean { private final StorageQueueTemplate storageQueueTemplate; public MyBean(StorageQueueTemplate storageQueueTemplate) { this.storageQueueTemplate = storageQueueTemplate; } public void someMethod() { this.serviceBusTemplate.sendAsync('STORAGE_QUEUE_NAME', MessageBuilder.withPayload("Hello world").build()).subscribe(); } public void processMessage() { Message<?> message = storageQueueTemplate.receiveAsync('STORAGE_QUEUE_NAME', Duration.ofSeconds(30)).block(); // ... } }
Contoh-contoh
Untuk informasi selengkapnya, lihat azure-spring-boot-samples repositori di GitHub.