Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u Spring Cloud Azure en Spring Messaging Azure Storage Queue kunt gebruiken. Het Spring Framework biedt uitgebreide ondersteuning voor integratie met berichtensystemen.
Spring Messaging Azure Opslagwachtrij
Belangrijke concepten
Azure Queue Storage is een service om grote aantallen berichten op te slaan. U opent berichten vanaf elke locatie ter wereld via geverifieerde aanroepen via HTTP of HTTPS. Een wachtrijbericht kan maximaal 64 kB groot zijn. Een wachtrij kan miljoenen berichten bevatten, tot de totale capaciteitslimiet van een opslagaccount. Wachtrijen worden vaak gebruikt om een voorraad werk te maken dat asynchroon moet worden verwerkt. Het Spring Messaging-project voor Azure Queue Storage past kernconcepten van Spring toe op de ontwikkeling van op service bus gebaseerde berichtenoplossingen. Het biedt een sjabloon als abstractie op hoog niveau voor het verzenden en ontvangen van berichten. Deze bibliotheken bevorderen het gebruik van afhankelijkheidsinjectie en declaratieve configuratie.
Afhankelijkheid instellen
<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>
Configuratie
De bibliotheek biedt de volgende configuratieopties voor StorageQueueTemplate:
| Vastgoed | Typ | Beschrijving |
|---|---|---|
spring.cloud.azure.message-converter.isolated-object-mapper |
booleaan | Of een geïsoleerde ObjectMapper-bean wordt gebruikt voor het berichtconversieprogramma van de opslagwachtrij. Standaard ingeschakeld. |
spring.cloud.azure.storage.queue.enabled |
booleaan | Of een Azure Storage-wachtrij is ingeschakeld. |
spring.cloud.azure.storage.queue.connection-string |
Touwtje | Verbindingsreekswaarde voor opslagwachtrijnaamruimte. |
spring.cloud.azure.storage.queue.accountName |
Touwtje | Naam van opslagwachtrijaccount. |
spring.cloud.azure.storage.queue.accountKey |
Touwtje | Opslagwachtrijaccountsleutel. |
Basaal gebruik
Berichtconversieprogramma voor aangepaste opslagwachtrij
Er zijn twee manieren om het berichtconversieprogramma voor opslagwachtrijen te configureren:
Configureer de volgende eigenschap om het standaard berichtconversieprogramma voor opslagwachtrijen te gebruiken met een
ObjectMapperbean. Dit kan uw aangepasteObjectMapperbean zijn of een bean die wordt beheerd door Spring Boot:spring: cloud: azure: message-converter: isolated-object-mapper: falseDefinieer de bean voor het berichtconversieprogramma voor de opslagwachtrij rechtstreeks:
@Bean AzureMessageConverter<QueueMessageItem, QueueMessageItem> storageQueueMessageConverter() { JsonMapper jsonMapper = JsonMapper.builder().addModule(new JavaTimeModule()).build(); return new ServiceBusMessageConverter(jsonMapper); }
Berichten verzenden en ontvangen naar Azure Storage Queue
Gebruik de volgende stappen om berichten te verzenden en te ontvangen:
Vul de configuratieopties voor referenties in op een van de volgende manieren:
Configureer voor referenties als
DefaultAzureCredentialde volgende eigenschappen in uw application.yml bestand:spring: cloud: azure: storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}Voor referenties als verbindingsreeks configureert u de volgende eigenschappen in uw application.yml-bestand:
spring: cloud: azure: storage: queue: connection-string: ${AZURE_STORAGE_QUEUE_CONNECTION_STRING}Voor referenties als beheerde identiteiten configureert u de volgende eigenschappen in uw application.yml-bestand:
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}
Opmerking
De volgende waarden zijn toegestaan voor tenant-id: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden de sectie Verkeerd eindpunt gebruikt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van identiteitsprovider bestaat niet in tenant. Zie App met één tenant converteren naar multitenant op Microsoft Entra IDvoor meer informatie over het converteren van uw app met één tenant.
Voor referenties als service-principal configureert u de volgende eigenschappen in uw application.yml-bestand:
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}
Opmerking
De volgende waarden zijn toegestaan voor tenant-id: common, organizations, consumersof de tenant-id. Zie voor meer informatie over deze waarden de sectie Verkeerd eindpunt gebruikt (persoonlijke en organisatieaccounts) van Fout AADSTS50020 - Gebruikersaccount van identiteitsprovider bestaat niet in tenant. Zie App met één tenant converteren naar multitenant op Microsoft Entra IDvoor meer informatie over het converteren van uw app met één tenant.
StorageQueueTemplateis automatisch geconfigureerd. U kunt het rechtstreeks aan uw eigen bonen koppelen om berichten te verzenden of te ontvangen, zoals wordt weergegeven in het volgende voorbeeld:@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(); // ... } }
Voorbeelden
Zie de azure-spring-boot-samples opslagplaats op GitHub voor meer informatie.