Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Spring Cloud Azure ve Spring Messaging Azure Depolama Kuyruğu'nun nasıl kullanılacağı açıklanmaktadır. Spring Framework, mesajlaşma sistemleriyle tümleştirme için kapsamlı destek sağlar.
Spring Messaging için Azure Depolama Kuyruğu
Temel kavramlar
Azure Kuyruk Depolama, çok sayıda iletiyi depolamaya yönelik bir hizmettir. HTTP veya HTTPS kullanarak kimliği doğrulanmış çağrılar aracılığıyla dünyanın herhangi bir yerinden iletilere erişebilirsiniz. Kuyruk iletisinin boyutu en fazla 64 KB olabilir. Kuyruk, depolama hesabının toplam kapasite sınırına kadar milyonlarca ileti içerebilir. Kuyruklar, genellikle zaman uyumsuz olarak işlenmek üzere bir iş birikimi oluşturmak için kullanılır. Azure Kuyruk Depolama için Spring Messaging projesi, hizmet veri yolu tabanlı mesajlaşma çözümlerinin geliştirilmesine temel Spring kavramlarını uygular. İleti göndermek ve almak için üst düzey soyutlama olarak bir
Bağımlılık kurulumu
<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>
Konfigürasyon
Kitaplık, StorageQueueTemplateiçin aşağıdaki yapılandırma seçeneklerini sağlar:
| Mülkiyet | Türü | Açıklama |
|---|---|---|
spring.cloud.azure.message-converter.isolated-object-mapper |
Boolean | Depolama Kuyruğu ileti dönüştürücüsü için yalıtılmış bir ObjectMapper çekirdeğinin kullanılıp kullanılmadığı. Varsayılan olarak etkindir. |
spring.cloud.azure.storage.queue.enabled |
Boolean | Azure Depolama Kuyruğu'nın etkinleştirilip etkinleştirilmediği. |
spring.cloud.azure.storage.queue.connection-string |
Dize | Depolama Kuyruğu Ad Alanı bağlantı dizesi değeri. |
spring.cloud.azure.storage.queue.accountName |
Dize | Depolama Kuyruğu hesap adı. |
spring.cloud.azure.storage.queue.accountKey |
Dize | Depolama Kuyruğu hesap anahtarı. |
Temel kullanım
Özel Depolama Kuyruğu ileti dönüştürücüsü
Depolama Kuyruğu ileti dönüştürücüsİnİ yapılandırmanın iki yolu vardır:
Aşağıdaki özelliği varsayılan Depolama Kuyruğu ileti dönüştürücüsünü özel
ObjectMapperfasulyeniz veya Spring Boot tarafından yönetilen birObjectMapperfasulye kullanacak şekilde yapılandırın:spring: cloud: azure: message-converter: isolated-object-mapper: falseDepolama Kuyruğu ileti dönüştürücüsü çekirdeğini doğrudan tanımlayın:
@Bean AzureMessageConverter<QueueMessageItem, QueueMessageItem> storageQueueMessageConverter() { JsonMapper jsonMapper = JsonMapper.builder().addModule(new JavaTimeModule()).build(); return new ServiceBusMessageConverter(jsonMapper); }
Azure Depolama Kuyruğu'na ileti gönderme ve alma
İleti göndermek ve almak için aşağıdaki adımları kullanın:
Aşağıdaki yaklaşımlardan birini kullanarak kimlik bilgisi yapılandırma seçeneklerini doldurun:
DefaultAzureCredentialkimlik bilgileri için application.yml dosyanızda aşağıdaki özellikleri yapılandırın:spring: cloud: azure: storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}Bağlantı dizesi olarak kimlik bilgileri için application.yml dosyanızda aşağıdaki özellikleri yapılandırın:
spring: cloud: azure: storage: queue: connection-string: ${AZURE_STORAGE_QUEUE_CONNECTION_STRING}Yönetilen kimlik olarak kimlik bilgileri için application.yml dosyanızda aşağıdaki özellikleri yapılandırın:
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}
Uyarı
tenant-idiçin aşağıdaki değerlere izin verilir: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için, Hata AADSTS50020 - Kimlik sağlayıcısından kullanıcı hesabı kiracımevcut değil bölümünün Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz. Tek kiracılı uygulamayı Microsoft Entra IDüzerinde çok kiracılıya dönüştürme.
Hizmet sorumlusu olarak kimlik bilgileri için application.yml dosyanızda aşağıdaki özellikleri yapılandırın:
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}
Uyarı
tenant-idiçin aşağıdaki değerlere izin verilir: common, organizations, consumersveya kiracı kimliği. Bu değerler hakkında daha fazla bilgi için, Hata AADSTS50020 - Kimlik sağlayıcısından kullanıcı hesabı kiracımevcut değil bölümünün Yanlış uç nokta (kişisel ve kuruluş hesapları) kullanıldı bölümüne bakın. Tek kiracılı uygulamanızı dönüştürme hakkında bilgi için bkz. Tek kiracılı uygulamayı Microsoft Entra IDüzerinde çok kiracılıya dönüştürme.
StorageQueueTemplateotomatik olarak yapılandırılır. Aşağıdaki örnekte gösterildiği gibi iletileri göndermek veya almak için doğrudan kendi çekirdeklerinize otomatik olarak bağlanabilirsiniz:@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(); // ... } }
Örnekler
Daha fazla bilgi için GitHub'daki azure-spring-boot-samples depoya bakın.