Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak můžete používat frontu Spring Cloud Azure a Spring Messaging Azure Storage. Spring Framework poskytuje rozsáhlou podporu integrace se systémy zasílání zpráv.
Fronta úložiště Azure služby Spring Messaging
Klíčové koncepty
Azure Queue Storage je služba pro ukládání velkého počtu zpráv. Ke zprávům se dostanete odkudkoli na světě prostřednictvím ověřených volání pomocí protokolu HTTP nebo HTTPS. Zpráva fronty může mít velikost až 64 KB. Fronta může obsahovat miliony zpráv až do celkového limitu kapacity účtu úložiště. Fronty se běžně používají k vytvoření seznamu úkolů pro zpracování asynchronně. Projekt Spring Messaging pro Azure Queue Storage používá základní koncepty Springu na vývoj řešení zasílání zpráv založených na sběrnici service bus. Poskytuje šablonu jako abstrakci vysoké úrovně pro odesílání a přijímání zpráv. Tyto knihovny podporují použití injektáže závislostí a deklarativní konfigurace.
Nastavení závislostí
<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>
Konfigurace
Knihovna poskytuje následující možnosti konfigurace pro StorageQueueTemplate:
| Vlastnictví | Typ | Popis |
|---|---|---|
spring.cloud.azure.message-converter.isolated-object-mapper |
Boolean | Určuje, zda se pro převaděč zpráv fronty služby Storage používá izolovaný objekt ObjectMapper bean. Ve výchozím nastavení je povoleno. |
spring.cloud.azure.storage.queue.enabled |
Boolean | Určuje, jestli je povolená fronta služby Azure Storage. |
spring.cloud.azure.storage.queue.connection-string |
Řetězec | Hodnota připojovacího řetězce fronty služby Storage |
spring.cloud.azure.storage.queue.accountName |
Řetězec | Název účtu fronty úložiště |
spring.cloud.azure.storage.queue.accountKey |
Řetězec | Klíč účtu fronty úložiště. |
Základní použití
Převaděč zpráv vlastní fronty úložiště
Existují dva způsoby konfigurace převaděče zpráv fronty úložiště:
Nakonfigurujte následující vlastnost tak, aby výchozí převaděč zpráv fronty úložiště používal
ObjectMapperbean, což může být vaše vlastníObjectMapperbean nebo jedna spravovaná aplikací Spring Boot:spring: cloud: azure: message-converter: isolated-object-mapper: falseDefinujte převaděč zpráv fronty úložiště přímo:
@Bean AzureMessageConverter<QueueMessageItem, QueueMessageItem> storageQueueMessageConverter() { JsonMapper jsonMapper = JsonMapper.builder().addModule(new JavaTimeModule()).build(); return new ServiceBusMessageConverter(jsonMapper); }
Odesílání a příjem zpráv do fronty služby Azure Storage
K odesílání a přijímání zpráv použijte následující postup:
Pomocí jednoho z následujících přístupů vyplňte možnosti konfigurace přihlašovacích údajů:
Pro přihlašovací údaje jako
DefaultAzureCredentialnakonfigurujte v souboru application.yml následující vlastnosti:spring: cloud: azure: storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}Pro přihlašovací údaje jako připojovací řetězec nakonfigurujte v souboru application.yml následující vlastnosti:
spring: cloud: azure: storage: queue: connection-string: ${AZURE_STORAGE_QUEUE_CONNECTION_STRING}U přihlašovacích údajů jako spravovaných identit nakonfigurujte v souboru application.yml následující vlastnosti:
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}
Poznámka:
Pro tenant-idjsou povoleny následující hodnoty: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním nájemcem na vícenájemcovou najdete v kapitole Převod jednoklientských aplikací na vícenájemcovou vMicrosoft Entra ID.
Pro přihlašovací údaje jako instanční objekt nakonfigurujte v souboru application.yml následující vlastnosti:
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}
Poznámka:
Pro tenant-idjsou povoleny následující hodnoty: common, organizations, consumersnebo ID tenanta. Další informace o těchto hodnotách najdete v části Použití nesprávného koncového bodu (osobní a organizační účty) v části Chyba AADSTS50020 – Uživatelský účet poskytovatele identity neexistuje v tenantovi. Informace o převodu aplikace s jedním nájemcem na vícenájemcovou najdete v kapitole Převod jednoklientských aplikací na vícenájemcovou vMicrosoft Entra ID.
StorageQueueTemplateje automaticky nakonfigurovaný. Můžete ho automaticky připojit přímo do vlastních fazolí, abyste mohli odesílat nebo přijímat zprávy, jak je znázorněno v následujícím příkladu:@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(); // ... } }
Vzorky
Další informace najdete v úložišti na GitHubu azure-spring-boot-samples .