Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk azt ismerteti, hogyan használhatja a Spring Cloud Azure-t és a Spring Messaging Azure Storage-üzenetsort. A Spring Framework széles körű támogatást nyújt az üzenetkezelési rendszerekkel való integrációhoz.
Spring Messaging Azure-tárolási üzenetsor
Főbb fogalmak
Az Azure Queue Storage nagy mennyiségű üzenet tárolására szolgáló szolgáltatás. A világ bármely pontjáról elérheti az üzeneteket hitelesített hívásokon keresztül HTTP vagy HTTPS használatával. Az üzenetsor-üzenetek mérete legfeljebb 64 KB lehet. Az üzenetsorok több millió üzenetet tartalmazhatnak, akár a tárfiók teljes kapacitáskorlátját is elérhetik. A sorokat gyakran használják hátralék létrehozására az aszinkron feldolgozáshoz. Az Azure Queue Storage-hoz készült Spring Messaging projekt alapvető Spring-fogalmakat alkalmaz a service bus-alapú üzenetkezelési megoldások fejlesztésére. Egy sablont, amely magas szintű absztrakció az üzenetek küldéséhez és fogadásához. Ezek a kódtárak elősegítik a függőséginjektálás és a deklaratív konfiguráció használatát.
Függőség beállítása
<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>
Konfiguráció
A kódtár a következő konfigurációs beállításokat biztosítja a StorageQueueTemplate:
| Ingatlan | Típus | Leírás |
|---|---|---|
spring.cloud.azure.message-converter.isolated-object-mapper |
Boolean | Azt jelzi, hogy egy izolált ObjectMapper-bean van-e használva a Storage Queue üzenetkonverteréhez. Alapértelmezés szerint engedélyezve van. |
spring.cloud.azure.storage.queue.enabled |
Boolean | Hogy engedélyezve van-e egy Azure Storage-üzenetsor. |
spring.cloud.azure.storage.queue.connection-string |
Lánc | Storage Queue Namespace kapcsolati sztring értéke. |
spring.cloud.azure.storage.queue.accountName |
Lánc | Storage Queue-fiók neve. |
spring.cloud.azure.storage.queue.accountKey |
Lánc | Storage Queue-fiókkulcs. |
Alapszintű használat
Custom Storage Queue üzenetkonverter
A Storage Queue üzenetkonverter kétféleképpen konfigurálható:
Konfigurálja a következő tulajdonságot úgy, hogy az alapértelmezett Storage Queue üzenetkonverter használjon egy
ObjectMapperbabot, amely lehet egyéniObjectMapperbab vagy a Spring Boot által felügyelt:spring: cloud: azure: message-converter: isolated-object-mapper: falseAdja meg közvetlenül a Storage Queue üzenetkonverterét:
@Bean AzureMessageConverter<QueueMessageItem, QueueMessageItem> storageQueueMessageConverter() { JsonMapper jsonMapper = JsonMapper.builder().addModule(new JavaTimeModule()).build(); return new ServiceBusMessageConverter(jsonMapper); }
Üzenetek küldése és fogadása az Azure Storage-üzenetsorba
Az alábbi lépésekkel küldhet és fogadhat üzeneteket:
Adja meg a hitelesítő adatok konfigurációs beállításait az alábbi módszerek egyikével:
Hitelesítő adatok
DefaultAzureCredentialesetén konfigurálja a következő tulajdonságokat a application.yml fájlban:spring: cloud: azure: storage: queue: account-name: ${AZURE_STORAGE_QUEUE_ACCOUNT_NAME}A hitelesítő adatok kapcsolati sztringként való megadásához konfigurálja a következő tulajdonságokat a application.yml fájlban:
spring: cloud: azure: storage: queue: connection-string: ${AZURE_STORAGE_QUEUE_CONNECTION_STRING}A hitelesítő adatok felügyelt identitásként való megadásához konfigurálja a következő tulajdonságokat a application.yml fájlban:
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}
Megjegyzés:
A következő értékek engedélyezettek tenant-id: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, amely az AADSTS50020 - Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben hiba részét képezi. Az egybérlős alkalmazás konvertálásáról további információért lásd: Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra ID rendszeren.
A szolgáltatásnévként megadott hitelesítő adatokhoz konfigurálja a következő tulajdonságokat a application.yml fájlban:
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}
Megjegyzés:
A következő értékek engedélyezettek tenant-id: common, organizations, consumersvagy bérlőazonosító. Ezekről az értékekről további információt a Helytelen végpont (személyes és szervezeti fiókok) szakaszában talál, amely az AADSTS50020 - Az identitásszolgáltatótól származó felhasználói fiók nem létezik a bérlőben hiba részét képezi. Az egybérlős alkalmazás konvertálásáról további információért lásd: Az egybérlős alkalmazás átalakítása több-bérlőssé a Microsoft Entra ID rendszeren.
StorageQueueTemplateautomatikusan konfigurálva van. A következő példában látható módon közvetlenül a saját babjába is beviheti, hogy üzeneteket küldjön vagy fogadjon:@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(); // ... } }
Minták
További információt a azure-spring-boot-samples GitHub adattárában talál.