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žít Spring Cloud Azure a službu Spring Messaging Azure Storage Queue. 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 služby Storage Queue |
spring.cloud.azure.storage.queue.accountKey |
Řetězec | Klíč účtu fronty úložiště. |
Základní použití
Převodník zpráv pro vlastní úložnou frontu
Existují dva způsoby, jak nakonfigurovat převodník zpráv fronty Azure Storage:
Nakonfigurujte následující vlastnost tak, aby výchozí převodník zpráv služby Storage Queue používal objekt bean
ObjectMapper, kterým může být váš vlastní objekt beanObjectMappernebo objekt bean spravovaný Spring Bootem:spring: cloud: azure: message-converter: isolated-object-mapper: falseDefinujte bean konvertoru zpráv Storage Queue 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 pro instanční objekt služby 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 .