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 az oktatóanyag bemutatja, hogyan használhatja a Spring Boot Starter for Azure Service Bus JMS-t üzenetek küldésére, valamint fogadására a Service Bus queues és topics.
Az Azure egy Azure Service Bus („Service Bus”) nevű aszinkron üzenetkezelő platformmal rendelkezik, amely az Advanced Message Queueing Protocol 1.0 („AMQP 1.0”) szabványon alapul. A Service Bus számos támogatott Azure-platformon használható.
Az Azure Service Bus JMS-hez készült Spring Boot Starter spring JMS-integrációt biztosít a Service Bushoz.
Az alábbi videó bemutatja, hogyan integrálhatók a Spring JMS-alkalmazások az Azure Service Bus használatával a JMS 2.0 használatával.
Ebben az oktatóanyagban két hitelesítési módszert használunk: a Microsoft Entra-hitelesítést és a közös hozzáférésű jogosultságkódokat (SAS). A Jelszó nélküli lapon a Microsoft Entra-hitelesítés, a Kapcsolati sztring lapon pedig az SAS-hitelesítés látható.
A Microsoft Entra-hitelesítés az Azure Service Bus JMS-hez a Microsoft Entra ID-ban definiált identitások használatával történő csatlakozás mechanizmusa. A Microsoft Entra-hitelesítéssel központi helyen kezelheti az adatbázis felhasználói identitásait és más Microsoft-szolgáltatások, ami leegyszerűsíti az engedélykezelést.
Az SAS-hitelesítés az Azure Service Bus névterének kapcsolati sztringjét használja a Service Bus JMS delegált hozzáféréséhez. Ha úgy dönt, hogy hitelesítő adatokként használja a megosztott hozzáférési jogosultságkódokat, a kapcsolati sztringet Önnek kell kezelnie.
Előfeltételek
Azure-előfizetés – hozzon létre egyet ingyenesen.
A Java Development Kit (JDK) 8- vagy újabb verziója.
Apache Maven, 3.2-es vagy újabb verzió.
Üzenetsor vagy témakör az Azure Service Bushoz. Ha nincs ilyenje, tekintse meg a következőket: Az Azure Portal használata a Service Bus névtér és üzenetsor létrehozásához vagy Az Azure Portal használata a Service Bus témakör és a témakör előfizetéseinek létrehozásához.
Egy Spring Boot-alkalmazás. Ha nem rendelkezik ilyennel, hozzon létre egy Maven-projektet a Spring Initializrrel. Mindenképpen válassza a Maven Projectet, és a Függőségek csoportban adja hozzá a Spring Web-függőséget, majd válassza a Java 8-es vagy újabb verzióját.
Fontos
Az oktatóanyag lépéseinek elvégzéséhez a Spring Boot 2.5-ös vagy újabb verziójára van szükség.
Üzenetek küldése és fogadása az Azure Service Busból
Az Azure Service Bus várólista vagy téma használatával üzeneteket küldhet és fogadhat a Spring Cloud Azure Service Bus JMS segítségével.
A Spring Cloud Azure Service Bus JMS Starter modul telepítéséhez adja hozzá a következő függőségeket a pom.xml fájlhoz:
A Spring Cloud Azure Anyagjegyzéke (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>6.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Feljegyzés
Ha Spring Boot 3.0.x-3.4.x verziót használ, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót5.23.0.Ha a Spring Boot 2.x-et használja, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót4.20.0!Ezt az anyagjegyzéket (BOM) a
<dependencyManagement>pom.xml fájl szakaszában kell konfigurálni. Ez biztosítja, hogy minden Spring Cloud Azure-függőség ugyanazt a verziót használja.A BOM-hez használt verzióról további információt a Spring Cloud Azure melyik verzióját érdemes használni.
A Spring Cloud Azure Service Bus JMS Starter artefaktum:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId> </dependency>
Az alkalmazás kódolása
Az alábbi lépésekkel konfigurálhatja az alkalmazást, hogy Service Bus-üzenetsort vagy -témakört használjon az üzenetek küldéséhez és fogadásához.
A Service Bus hitelesítő adatainak konfigurálásához adja hozzá az alábbi tulajdonságokat az application.properties fájlhoz .
Feljegyzés
Az Azure Service Bus JMS támogatja a Microsoft Entra ID használatát a Service Bus-erőforrásokra irányuló kérések engedélyezéséhez. A Microsoft Entra ID-val azure-beli szerepköralapú hozzáférés-vezérléssel (Azure RBAC) adhat engedélyeket egy biztonsági tagnak, amely lehet felhasználó vagy alkalmazásszolgáltatás-tag.
Fontos
Mielőtt hozzákezd, győződjön meg arról, hogy hozzárendelte az Azure Service Bus-adattulajdonosi szerepkört a jelenleg használt Microsoft Entra-fiókhoz. További információ: Azure-szerepkörök hozzárendelése a Azure Portal.
spring.jms.servicebus.namespace=<ServiceBusNamespace> spring.jms.servicebus.pricing-tier=<ServiceBusPricingTier> spring.jms.servicebus.passwordless-enabled=true spring.jms.listener.receive-timeout=60000Az alábbi táblázat a konfiguráció mezőit ismerteti:
Mező Leírás spring.jms.servicebus.namespaceAdja meg a Service Bus-szolgáltatáspéldányban az Azure Portalról beszerzett névteret. spring.jms.servicebus.pricing-tierAdja meg a szolgáltatási busz árkategóriáját. A támogatott értékek premiumésstandard. A prémium szint a Java Message Service (JMS) 2.0-s verziójával, míg a standard szint a JMS 1.1-et használja az Azure Service Bus használatához.spring.jms.servicebus.passwordless-enabledAdja meg, hogy használjon-e jelszó nélküliséget. spring.jms.listener.receive-timeoutAlapértelmezés szerint a fogadási időtúllépés értéke 1000. Javasoljuk, hogy állítsa be a 60000-et Adja hozzá a
@EnableJmsa JMS-figyelő annotált végpontjai támogatásának engedélyezéséhez. Üzenetküldésre ésJmsTemplateüzenetek fogadására használható@JmsListener, ahogyan az alábbi példában is látható:import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.jms.annotation.EnableJms; import org.springframework.boot.CommandLineRunner; import org.springframework.jms.annotation.JmsListener; import org.springframework.jms.core.JmsTemplate; @SpringBootApplication @EnableJms public class ServiceBusJMSQueueApplication implements CommandLineRunner { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceBusJMSQueueApplication.class); private static final String QUEUE_NAME = "<QueueName>"; @Autowired private JmsTemplate jmsTemplate; public static void main(String[] args) { SpringApplication.run(ServiceBusJMSQueueApplication.class, args); } @Override public void run(String... args) { LOGGER.info("Sending message"); jmsTemplate.convertAndSend(QUEUE_NAME, "Hello World"); } @JmsListener(destination = QUEUE_NAME, containerFactory = "jmsListenerContainerFactory") public void receiveMessage(String message) { LOGGER.info("Message received: {}", message); } }Cserélje le a
<QueueName>elemet arra az üzenetsornévre, amelyet a Service Bus névterében konfigurált.Tipp
Ebben az oktatóanyagban nincsenek hitelesítési műveletek a konfigurációkban vagy a kódban. Az Azure-szolgáltatásokhoz való csatlakozáshoz azonban hitelesítés szükséges. A hitelesítés befejezéséhez az Azure Identity-et kell használnia. A Spring Cloud Azure
DefaultAzureCredentialaz Azure Identity-kódtár használatával segít a hitelesítő adatok kódmódosítások nélküli beszerzésében.DefaultAzureCredentialtöbb hitelesítési módszert támogat, és meghatározza, hogy melyik metódust használja futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (például helyi és éles környezetekben) környezetspecifikus kód implementálása nélkül. További információ: DefaultAzureCredential.A helyi fejlesztési környezetekben a hitelesítés befejezéséhez használhatja az Azure CLI-t, a Visual Studio Code-ot, a PowerShellt vagy más módszereket. További információ: Azure-hitelesítés Java-fejlesztési környezetekben. A hitelesítés azure-beli üzemeltetési környezetekben való elvégzéséhez javasoljuk a felhasználó által hozzárendelt felügyelt identitás használatát. További információ: Mik az Azure-erőforrások felügyelt identitásai?
Indítsa el az alkalmazást. Látnia kell a
Sending messageésHello Worldelemeket az alkalmazásnaplóban, amint az az alábbi példában látható:Sending message Message received: Hello World
Üzembe helyezés az Azure Spring Appsben
Most, hogy a Spring Boot-alkalmazás helyileg fut, ideje a termelési környezetbe áthelyezni. Az Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások üzembe helyezését az Azure-ban kódmódosítások nélkül. A szolgáltatás kezeli a Spring-alkalmazások infrastruktúráját, hogy a fejlesztők a kódjukra összpontosíthassanak. Az Azure Spring Apps átfogó monitorozási és diagnosztikai, konfigurációkezelési, szolgáltatásfelderítési, CI/CD-integrációs, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Appsben való üzembe helyezéséről az első alkalmazás üzembe helyezése az Azure Spring Appsben című témakörben olvashat.