Übung – Senden von Nachrichten an Azure Service Bus
In dieser Einheit erstellen Sie eine Spring Boot-Anwendung, die Nachrichten an eine Azure Service Bus-Warteschlange sendet. Führen Sie die folgenden Schritte lokal aus.
Erstellen eines Spring Boot-Projekts
Um unser Spring Boot-Projekt zu erstellen, verwenden wir Spring Initializr mit der folgenden Befehlszeile:
curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web -d baseDir=spring-sender-application -d bootVersion=2.4.1.RELEASE -d javaVersion=1.8 | tar -xzvf -
Senden von Nachrichten an eine Service Bus-Warteschlange
Nun senden Sie einige Nachrichten an eine Service Bus-Warteschlange.
Hinzufügen einer Maven-Abhängigkeit für den Service Bus-Spring Boot-Starter
Fügen Sie in der Datei pom.xml
in Ihrer spring-sender-application
unter „dependencies“ den folgenden Befehl hinzu:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-servicebus-jms-spring-boot-starter</artifactId>
<version>2.3.3</version>
</dependency>
Hinzufügen von Konfigurationsparametern
Bearbeiten Sie im Ordner
spring-sender-application\src\main\resources
die Dateiapplication.properties
, und fügen Sie die folgenden Parameter hinzu:spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000
Legen Sie die Eigenschaft
spring.jms.servicebus.connection-string
auf die Verbindungszeichenfolge für Ihren Service Bus-Namespace fest, die Sie zuvor gespeichert haben.
Hinzufügen von Code zum Senden von Nachrichten an Service Bus
Dann fügen wir die Geschäftslogik hinzu, um Nachrichten an eine Service Bus-Warteschlange zu senden.
Erstellen Sie im Verzeichnis src/main/java/com/example/demo
eine Datei namens SendController.java
mit dem folgenden Inhalt:
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SendController {
private static final String queue = "test-queue-jms";
@Autowired
private JmsTemplate jmsTemplate;
@GetMapping("/messages")
public String postMessage(@RequestParam String message) {
jmsTemplate.send(queue, s -> s.createTextMessage(message));
return message;
}
}
Lokales Ausführen der Anwendung
Wechseln Sie zurück zum Stamm des Beispielordners
spring-sender-application
, in dem sich die Dateipom.xml
befindet, und führen Sie den folgenden Befehl aus, um Ihre Spring Boot-Anwendung zu starten. In diesem Schritt wird davon ausgegangen, dass Siemvn
auf Ihrem Windows-Computer installiert haben, und es sich inPATH
befindet.mvn spring-boot:run
Nachdem der Anwendungsstart abgeschlossen ist, können Sie die folgenden Links auswählen, um Nachrichten an die Service Bus-Warteschlange zu senden.
http://localhost:8080/messages?message=Hello
http://localhost:8080/messages?message=HelloAgain
http://localhost:8080/messages?message=HelloOnceAgain
Sie können den Zeichenfolgenwert im Nachrichtenabfrageparameter ändern und beliebigen Text an die Service Bus-Warteschlange senden.
Der Browser zeigt an, was auch immer als Parameter für den Abfrage-String der Nachricht übergeben wird, was bedeutet, dass der Service Bus die Nachricht annimmt.
Anzeigen der Nachrichten in der Service Bus-Warteschlange
Hinweis
Auch wenn Sie durch das Anzeigen der Nachrichten die Sendeseite besser verstehen lernen, ist dieser Schritt optional.
Diese Nachrichten werden im nächsten Schritt dieses Tutorials empfangen.
Sie können mit dem Anzeigen der Meldungen im Service Bus-Explorer in der Azure-Portal fortfahren:
Zurück im Azure-Portal wählen Sie im linken Menü unter Entitäten die Option Warteschlangen aus.
Wählen Sie die geeignete Warteschlange aus. Die Warteschlange für diese Demo heißt z. B. test-queue-jms.
Wählen Sie im linken Bereich Service Bus-Explorer aus.
Wählen Sie Von Anfang an einsehen aus. Sie sollten alle drei Nachrichten sehen, die Sie mit HTTP-Befehlen gesendet haben.
Wählen Sie eine Nachricht aus, um den Nachrichtentext im unteren Bereich anzuzeigen.