Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du kan använda Spring Cloud Azure och Spring Messaging Azure Storage Queue. Spring Framework ger omfattande stöd för integrering med meddelandesystem.
Spring Meddelandehantering för Azure Storage-kö
Viktiga begrepp
Azure Queue Storage är en tjänst för att lagra ett stort antal meddelanden. Du kommer åt meddelanden var som helst i världen via autentiserade anrop med HTTP eller HTTPS. Ett kömeddelande kan vara upp till 64 KB stort. En kö kan innehålla miljontals meddelanden, upp till den totala kapacitetsgränsen för ett lagringskonto. Köer används ofta för att skapa en arbetskö som ska bearbetas asynkront. Spring Messaging för Azure Queue Storage-projektet tillämpar grundläggande Spring-begrepp på utvecklingen av Service Bus-baserade meddelandelösningar. Den innehåller en mall som en abstraktion på hög nivå för att skicka och ta emot meddelanden. Dessa bibliotek främjar användningen av beroendeinmatning och deklarativ konfiguration.
Beroendekonfiguration
<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>
Konfiguration
Biblioteket innehåller följande konfigurationsalternativ för StorageQueueTemplate
:
Fastighet | Typ | Beskrivning |
---|---|---|
spring.cloud.azure.message-converter.isolated-object-mapper | booleskt | Om en isolerad ObjectMapper-böna används för meddelandekonverteraren för Lagringskö. Aktiverad som standard. |
spring.cloud.azure.storage.queue.enabled | booleskt | Om en Azure Storage-kö är aktiverad. |
spring.cloud.azure.storage.queue.connection-string | Sträng | Anslutningssträngsvärde för lagringskönamnområde. |
spring.cloud.azure.storage.queue.accountName | Sträng | Namn på lagringskökonto. |
spring.cloud.azure.storage.queue.accountKey | Sträng | Kontonyckel för lagringskö. |
Grundläggande användning
Meddelandekonverterare för anpassad lagringskö
Det finns två sätt att konfigurera meddelandekonverteraren för Lagringskö:
Konfigurera följande egenskap så att standardkonverteraren för lagringskömeddelanden använder en
ObjectMapper
böna, som kan vara din anpassade bönaObjectMapper
eller en som hanteras av Spring Boot:spring: cloud: azure: message-converter: isolated-object-mapper: false
Definiera lagringskömeddelandekonverterarens böna direkt:
@Bean AzureMessageConverter<QueueMessageItem, QueueMessageItem> storageQueueMessageConverter() { JsonMapper jsonMapper = JsonMapper.builder().addModule(new JavaTimeModule()).build(); return new ServiceBusMessageConverter(jsonMapper); }
Skicka och ta emot meddelanden till Azure Storage Queue
Använd följande steg för att skicka och ta emot meddelanden:
Fyll i konfigurationsalternativen för autentiseringsuppgifter med någon av följande metoder:
För autentiseringsuppgifter som
DefaultAzureCredential
konfigurerar du följande egenskaper i din application.yml-fil:spring: cloud: azure: storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}
För autentiseringsuppgifter som anslutningssträng konfigurerar du följande egenskaper i filen application.yml:
spring: cloud: azure: storage: queue: connection-string: ${AZURE_STORAGE_QUEUE_CONNECTION_STRING}
För autentiseringsuppgifter som hanterade identiteter konfigurerar du följande egenskaper i din application.yml-fil:
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}
Anmärkning
Följande värden tillåts för tenant-id
: common
, organizations
, consumers
eller klientorganisations-ID. Mer information om dessa värden finns i avsnittet Använd fel slutpunkt (personliga konton och organisationskonton) i Fel AADSTS50020 – Användarkonto från identitetsprovidern finns inte i klientorganisationen. Information om hur du konverterar din enklientapp till flerklient finns i Konvertera enklientapp till flerklient på Microsoft Entra ID.
För autentiseringsuppgifter som tjänstens huvudnamn konfigurerar du följande egenskaper i din application.yml-fil:
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}
Anmärkning
Följande värden tillåts för tenant-id
: common
, organizations
, consumers
eller klientorganisations-ID. Mer information om dessa värden finns i avsnittet Använd fel slutpunkt (personliga konton och organisationskonton) i Fel AADSTS50020 – Användarkonto från identitetsprovidern finns inte i klientorganisationen. Information om hur du konverterar din enklientapp till flerklient finns i Konvertera enklientapp till flerklient på Microsoft Entra ID.
StorageQueueTemplate
konfigureras automatiskt. Du kan autokoppla den direkt till dina egna bönor för att skicka eller ta emot meddelanden, som du ser i följande exempel:@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(); // ... } }
Exempel
Mer information finns i azure-spring-boot-samples lagringsplats på GitHub.