Freigeben über


Senden von Nachrichten an ein Azure Service Bus-Thema und Empfangen von Nachrichten von Abonnements für das Thema (Java)

In dieser Schnellstartanleitung schreiben Sie Java-Code mit dem Paket „azure-messaging-servicebus“, um Nachrichten an ein Azure Service Bus-Thema zu senden und dann Nachrichten von Abonnements für dieses Thema zu empfangen.

Hinweis

In dieser Schnellstartanleitung wird Schritt für Schritt ein einfaches Szenario erläutert, bei dem Sie einen Batch von Nachrichten an ein Service Bus-Thema senden und diese Nachrichten von einem Abonnement des Themas empfangen werden. Weitere vordefinierte Java-Beispiele für Azure Service Bus finden Sie auf GitHub im Repository mit dem Azure SDK für Java.

Tipp

Wenn Sie mit Azure Service Bus-Ressourcen in einer Spring-Anwendung arbeiten, sollten Sie Spring Cloud Azure als Alternative in Betracht ziehen. Spring Cloud Azure ist ein Open-Source-Projekt, das eine nahtlose Spring-Integration mit Azure-Diensten ermöglicht. Weitere Informationen zu Spring Cloud Azure und ein Beispiel für die Verwendung von Service Bus finden Sie unter Spring Cloud Stream mit Azure Service Bus.

Voraussetzungen

Erstellen eines Namespace im Azure-Portal

Um mit der Verwendung von Service Bus-Nachrichtenentitäten in Azure zu beginnen, erstellen Sie einen Namespace mit einem Namen, der in Azure eindeutig ist. Ein Namespace bietet einen Bereichscontainer für Service Bus-Ressourcen, z. B. Warteschlangen und Themen, in Ihrer Anwendung.

So erstellen Sie einen Namespace

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie das Flyoutmenü von oben links aus, und navigieren Sie zur Seite "Alle Dienste".

  3. Wählen Sie auf der linken Navigationsleiste "Integration" aus.

  4. Scrollen Sie nach unten zu Messaging services>Service Bus , und wählen Sie "Erstellen" aus.

    Screenshot der Auswahl von

  5. Führen Sie auf der Registerkarte " Grundlagen " der Seite " Namespace erstellen " die folgenden Schritte aus:

    1. Wählen Sie unter Abonnement ein Azure-Abonnement aus, in dem der Namespace erstellt werden soll.

    2. Wählen Sie für Ressourcengruppe eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine neue.

    3. Geben Sie einen Namespacenamen ein, der die folgenden Benennungskonventionen erfüllt:

      • Der Name muss innerhalb von Azure eindeutig sein. Das System überprüft sofort, ob dieser Name verfügbar ist.
      • Die Länge des Namens beträgt mindestens 6 und maximal 50 Zeichen.
      • Der Name darf nur Buchstaben, Zahlen, Bindestriche (-) enthalten.
      • Der Name muss mit einem Buchstaben beginnen und mit einem Buchstaben oder einer Ziffer enden.
      • Der Name darf nicht mit -sb oder -mgmt enden.
    4. Wählen Sie für Standort die Region aus, in der der Namespace gehostet werden soll.

    5. Wählen Sie unter Tarif den Tarif (Basic, Standard oder Premium) für den Namespace aus. Wählen Sie für diesen Schnellstart die Option Standard aus.

      Wenn Sie premium-Ebene auswählen, können Sie die Georeplikation für den Namespace aktivieren. Die Georeplikationsfunktion stellt sicher, dass die Metadaten und Daten eines Namespace kontinuierlich aus einer primären Region in eine oder mehrere sekundäre Regionen repliziert werden.

      Wichtig

      Wenn Sie Themen und Abonnements nutzen möchten, wählen Sie entweder Standard oder Premium aus. Themen und Abonnements werden im Preisniveau "Basic" nicht unterstützt.

      Wenn Sie den Tarif Premium auswählen, geben Sie die Anzahl von Messagingeinheiten an. Der Premium-Tarif bietet Ressourcenisolierung auf CPU- und Arbeitsspeicherebene, sodass die einzelnen Workloads voneinander isoliert ausgeführt werden. Dieser Ressourcencontainer wird als Messaging-Einheit bezeichnet. Ein Premium-Namespace verfügt über mindestens eine Messagingeinheit. Sie können 1, 2, 4, 8 oder 16 Messagingeinheiten für jeden Service Bus Premium-Namespace auswählen. Weitere Informationen finden Sie unter Service Bus Premium Messaging-Stufe.

    6. Wählen Sie am unteren Rand der Seite die Option Bewerten + erstellen aus.

      Screenshot der Seite

    7. Überprüfen Sie die Einstellungen auf der Seite Überprüfen und erstellen, und wählen Sie Erstellen aus.

  6. Nachdem die Bereitstellung der Ressource erfolgreich war, wählen Sie auf der Bereitstellungsseite "Zur Ressource wechseln " aus.

    Screenshot der Seite

  7. Die Startseite für Ihren Service Bus-Namespace wird angezeigt.

    Screenshot der Startseite des erstellten ServiceBus-Namespaces.

Erstellen eines Themas mit dem Azure-Portal

  1. Erweitern Sie auf der Seite Service Bus-Namespace im linken Navigationsmenü die Option Entitäten, und wählen Sie im linken Menü die Option Themen aus.

  2. Wählen Sie auf der Symbolleiste die Option + Thema aus.

  3. Geben Sie unter Name einen Namen für das Thema ein. Behalten Sie bei den anderen Optionen die Standardwerte bei.

  4. Klicken Sie auf Erstellen.

    Screenshot der Seite „Thema erstellen“ im Azure-Portal

Erstellen eines Abonnements für das Thema

  1. Wählen Sie das Thema aus, das Sie im vorherigen Abschnitt erstellt haben.

    Screenshot der Auswahl des Themas aus der Themenliste.

  2. Wählen Sie auf der Seite Service Bus-Thema auf der Symbolleiste die Option + Abonnement aus.

    Screenshot der Schaltfläche „Abonnement hinzufügen“ auf der Themenseite.

  3. Führen Sie auf der Seite Abonnement erstellen die folgenden Schritte aus:

    1. Geben Sie S1 für Name des Abonnements ein.

    2. Wählen Sie dann Erstellen, um das Abonnement zu erstellen.

      Screenshot der Seite „Abonnement erstellen“

Authentifizieren der App bei Azure

In diesem Artikel werden zwei Möglichkeiten zum Herstellen einer Verbindung mit Azure Service Bus erläutert: kennwortlose und Verbindungszeichenfolge.

Die erste Option zeigt, wie Sie über Ihren Sicherheitsprinzipal in Microsoft Entra ID und die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) eine Verbindung mit einem Service Bus-Namespace herstellen. Sie müssen sich keine Sorgen machen, dass Sie eine hartcodierte Verbindungszeichenfolge in Ihrem Code, in einer Konfigurationsdatei oder in einem sicheren Speicher wie Azure Key Vault haben.

Die zweite Option zeigt, wie Sie mithilfe einer Verbindungszeichenfolge eine Verbindung mit einem Service Bus-Namespace herstellen. Wenn Sie noch nicht mit Azure vertraut sind, ist die Option mit einer Verbindungszeichenfolge möglicherweise einfacher. In realen Anwendungen und Produktionsumgebungen wird die kennwortlose Option empfohlen. Weitere Informationen finden Sie unter Service Bus-Authentifizierung und Autorisierung. Weitere Informationen zur kennwortlosen Authentifizierung finden Sie unter Authentifizieren von .NET-Apps.

Zuweisen von Rollen zu Ihrem Microsoft Entra-Benutzer

Wenn Sie lokal entwickeln, stellen Sie sicher, dass das Benutzerkonto, das eine Verbindung mit Azure Service Bus herstellt, über die richtigen Berechtigungen verfügt. Sie benötigen die Rolle des Azure Service Bus-Datenbesitzers , um Nachrichten zu senden und zu empfangen. Um sich selbst diese Rolle zuzuweisen, benötigen Sie die Rolle des Benutzerzugriffsadministrators oder eine andere Rolle, die die Microsoft.Authorization/roleAssignments/write Aktion enthält.

Sie können einem Benutzer Azure RBAC-Rollen über das Azure-Portal, die Azure CLI oder mit Azure PowerShell zuweisen. Weitere Informationen zu den verfügbaren Bereichen für Rollenzuweisungen finden Sie unter "Grundlegendes zum Bereich für Azure RBAC".

Im folgenden Beispiel wird Ihrem Benutzerkonto die Rolle Azure Service Bus Data Owner zugewiesen. Diese Rolle bietet Vollzugriff auf Azure Service Bus-Ressourcen. Befolgen Sie in einem realen Szenario das Prinzip der geringsten Berechtigung , um Benutzern nur die Mindestberechtigungen zu erteilen, die für eine sicherere Produktionsumgebung erforderlich sind.

Integrierte Azure-Rollen für Azure Service Bus

Bei Azure Service Bus ist die Verwaltung der Namespaces und aller zugehörigen Ressourcen über das Azure-Portal und die Azure-Ressourcenverwaltungs-API bereits durch das Azure RBAC-Modell geschützt. Azure stellt die folgenden in Azure integrierten Rollen zum Autorisieren des Zugriffs auf einen Service Bus-Namespace bereit:

  • Azure Service Bus Data Owner: Ermöglicht den Datenzugriff auf den Service Bus-Namespace und seine Entitäten, einschließlich Warteschlangen, Themen, Abonnements und Filtern. Ein Mitglied dieser Rolle kann Nachrichten an Warteschlangen oder Themen/Abonnements senden bzw. aus diesen empfangen.
  • Azure Service Bus Data Sender: Verwenden Sie diese Rolle, um den Zugriff auf den send Service Bus-Namespace und seine Entitäten zu gewähren.
  • Azure Service Bus Data Receiver: Verwenden Sie diese Rolle, um den Zugriff auf den receive Service Bus-Namespace und seine Entitäten zu gewähren.

Informationen zum Erstellen einer benutzerdefinierten Rolle finden Sie unter Erforderliche Rechte für Service Bus-Vorgänge.

Hinzufügen eines Microsoft Entra-Benutzers zur Azure Service Bus-Besitzerrolle

Fügen Sie auf Service Bus-Namespace-Ebene Ihren Microsoft Entra-Benutzernamen der Rolle Azure Service Bus-Datenbesitzer hinzu. Diese Konfiguration ermöglicht es einer App, die im Kontext Ihres Benutzerkontos ausgeführt wird, Nachrichten an eine Warteschlange oder ein Thema zu senden. Sie kann Nachrichten aus einer Warteschlange oder einem Abonnement eines Themas empfangen.

Wichtig

In der Regel dauert die Verteilung der Rollenzuweisung in Azure ein bis zwei Minuten. In seltenen Fällen kann es aber bis zu acht Minuten dauern. Wenn bei der ersten Ausführung Ihres Codes Authentifizierungsfehler auftreten, warten Sie einige Momente, und versuchen Sie es dann erneut.

  1. Wenn die Seite „Service Bus-Namespace“ im Azure-Portal nicht geöffnet ist, ermitteln Sie Ihren Service Bus-Namespace über die Hauptsuchleiste oder den linken Navigationsbereich.

  2. Wählen Sie auf der Seite "Übersicht " im linken Menü die Option Access Control (IAM) aus.

  3. Wählen Sie auf der Seite Zugriffssteuerung (IAM) die Registerkarte Rollenzuweisungen aus.

  4. Wählen Sie im oberen Menü +Hinzufügen und dann Rollenzuweisung hinzufügen aus.

    Ein Screenshot zeigt, wie eine Rolle zugewiesen wird.

  5. Über das Suchfeld können Sie die Ergebnisse für die gewünschte Rolle filtern. Suchen Sie in diesem Beispiel nach Azure Service Bus Data Owner, und wählen Sie das entsprechende Ergebnis aus. Klicken Sie dann auf Weiter.

  6. Wählen Sie unter Zugriff zuweisen zu die Option Benutzer, Gruppe oder Dienstprinzipal und dann die Option + Mitglieder auswählen aus.

  7. Suchen Sie im Dialogfeld nach Ihrem Microsoft Entra-Benutzernamen (normalerweise Ihre E-Mail-Adresse benutzer@domäne), und wählen Sie unten im Dialogfeld Auswählen aus.

  8. Wählen Sie Überprüfen und zuweisen aus, um zur letzten Seite zu gelangen, und wählen Sie erneut Überprüfen und zuweisen aus, um den Vorgang abzuschließen.

Senden von Nachrichten an ein Thema

In diesem Abschnitt erstellen Sie ein Java-Konsolenprojekt und fügen Code zum Senden von Nachrichten an das von Ihnen erstellte Thema hinzu.

Erstellen eines Java-Konsolenprojekts

Erstellen Sie ein Java-Projekt mit Eclipse oder einem Tool Ihrer Wahl.

Konfigurieren Ihrer Anwendung für die Verwendung von Service Bus

Fügen Sie Verweise auf Azure Core- und Azure Service Bus-Bibliotheken hinzu.

Wenn Sie Eclipse verwenden und eine Java-Konsolenanwendung erstellt haben, konvertieren Sie Ihr Java-Projekt in ein Maven-Projekt: Klicken Sie im Fenster Paket-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Konfigurieren->In Maven-Projekt konvertieren aus. Fügen Sie dann Abhängigkeiten zu diesen beiden Bibliotheken hinzu, wie im folgenden Beispiel gezeigt.

Aktualisieren Sie die Datei pom.xml, um Abhängigkeiten zu den Azure Service Bus- und Azure Identity-Paketen hinzuzufügen.

    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-messaging-servicebus</artifactId>
            <version>7.13.3</version>
        </dependency>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-identity</artifactId>
            <version>1.8.0</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

Hinzufügen von Code zum Senden von Nachrichten an das Thema

  1. Fügen Sie die folgenden import-Anweisungen für das Thema der Java-Datei hinzu.

    import com.azure.messaging.servicebus.*;
    import com.azure.identity.*;
    
    import java.util.concurrent.TimeUnit;
    import java.util.Arrays;
    import java.util.List;
    
  2. Definieren Sie in der Klasse Variablen für die Verbindungszeichenfolge (im kennwortlosen Szenario nicht erforderlich), den Themennamen und den Abonnementnamen.

    static String topicName = "<TOPIC NAME>";
    static String subName = "<SUBSCRIPTION NAME>";
    

    Wichtig

    Ersetzen Sie <TOPIC NAME> durch den Namen des Themas und <SUBSCRIPTION NAME> durch den Namen des Abonnements des Themas.

  3. Fügen Sie in der Klasse eine Methode mit dem Namen sendMessage zum Senden einer Nachricht an das Thema hinzu.

    Wichtig

    Ersetzen Sie NAMESPACENAME durch den Namen Ihres Service Bus-Namespace.

    static void sendMessage()
    {
        // create a token using the default Azure credential
        DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
                .build();
    
        ServiceBusSenderClient senderClient = new ServiceBusClientBuilder()
                .fullyQualifiedNamespace("NAMESPACENAME.servicebus.windows.net")
                .credential(credential)
                .sender()
                .topicName(topicName)
                .buildClient();
    
        // send one message to the topic
        senderClient.sendMessage(new ServiceBusMessage("Hello, World!"));
        System.out.println("Sent a single message to the topic: " + topicName);
    }
    
    
  4. Fügen Sie in der Klasse eine Methode mit dem Namen createMessages zum Erstellen einer Liste mit Nachrichten hinzu. Normalerweise erhalten Sie diese Nachrichten von den verschiedenen Teilen Ihrer Anwendung. Hier erstellen wir eine Liste mit Beispielnachrichten.

    static List<ServiceBusMessage> createMessages()
    {
        // create a list of messages and return it to the caller
        ServiceBusMessage[] messages = {
                new ServiceBusMessage("First message"),
                new ServiceBusMessage("Second message"),
                new ServiceBusMessage("Third message")
        };
        return Arrays.asList(messages);
    }
    
  5. Fügen Sie eine Methode mit dem Namen sendMessageBatch zum Senden von Nachrichten an das von Ihnen erstellte Thema hinzu. Mit dieser Methode wird ein ServiceBusSenderClient für das Thema erstellt, die createMessages-Methode zum Abrufen der Liste mit den Nachrichten aufgerufen und mindestens ein Batch vorbereitet. Anschließend werden die Batches an das Thema gesendet.

    Wichtig

    Ersetzen Sie NAMESPACENAME durch den Namen Ihres Service Bus-Namespace.

    static void sendMessageBatch()
    {
        // create a token using the default Azure credential
        DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
                .build();
    
        ServiceBusSenderClient senderClient = new ServiceBusClientBuilder()
                .fullyQualifiedNamespace("NAMESPACENAME.servicebus.windows.net")
                .credential(credential)
                .sender()
                .topicName(topicName)
                .buildClient();
    
        // Creates an ServiceBusMessageBatch where the ServiceBus.
        ServiceBusMessageBatch messageBatch = senderClient.createMessageBatch();
    
        // create a list of messages
        List<ServiceBusMessage> listOfMessages = createMessages();
    
        // We try to add as many messages as a batch can fit based on the maximum size and send to Service Bus when
        // the batch can hold no more messages. Create a new batch for next set of messages and repeat until all
        // messages are sent.
        for (ServiceBusMessage message : listOfMessages) {
            if (messageBatch.tryAddMessage(message)) {
                continue;
            }
    
            // The batch is full, so we create a new batch and send the batch.
            senderClient.sendMessages(messageBatch);
            System.out.println("Sent a batch of messages to the topic: " + topicName);
    
            // create a new batch
            messageBatch = senderClient.createMessageBatch();
    
            // Add that message that we couldn't before.
            if (!messageBatch.tryAddMessage(message)) {
                System.err.printf("Message is too large for an empty batch. Skipping. Max size: %s.", messageBatch.getMaxSizeInBytes());
            }
        }
    
        if (messageBatch.getCount() > 0) {
            senderClient.sendMessages(messageBatch);
            System.out.println("Sent a batch of messages to the topic: " + topicName);
        }
    
        //close the client
        senderClient.close();
    }
    

Empfangen von Nachrichten aus einem Abonnement

In diesem Abschnitt fügen Sie dem Thema Code zum Abrufen von Nachrichten aus einem Abonnement hinzu.

  1. Fügen Sie eine Methode mit dem Namen receiveMessages hinzu, um Nachrichten vom Abonnement zu empfangen. Mit dieser Methode wird ein ServiceBusProcessorClient-Element für das Abonnement erstellt, indem ein Handler für die Verarbeitung von Nachrichten und ein anderer für die Verarbeitung von Fehlern angegeben wird. Anschließend wird der Prozessor gestartet, und es wird einige Sekunden lang abgewartet. Die empfangenen Nachrichten werden ausgegeben, und dann wird der Prozessor angehalten und geschlossen.

    Wichtig

    • Ersetzen Sie NAMESPACENAME durch den Namen Ihres Service Bus-Namespace.
    • Ersetzen Sie ServiceBusTopicTest in ServiceBusTopicTest::processMessage im Code durch den Namen Ihrer Klasse.
    // handles received messages
    static void receiveMessages() throws InterruptedException
    {
        DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
                .build();
    
        // Create an instance of the processor through the ServiceBusClientBuilder
        ServiceBusProcessorClient processorClient = new ServiceBusClientBuilder()
            .fullyQualifiedNamespace("NAMESPACENAME.servicebus.windows.net")
            .credential(credential)
            .processor()
            .topicName(topicName)
            .subscriptionName(subName)
            .processMessage(context -> processMessage(context))
            .processError(context -> processError(context))
            .buildProcessorClient();
    
        System.out.println("Starting the processor");
        processorClient.start();
    
        TimeUnit.SECONDS.sleep(10);
        System.out.println("Stopping and closing the processor");
        processorClient.close();
    }
    
  2. Fügen Sie die Methode processMessage hinzu, um eine Nachricht zu verarbeiten, die aus dem Service Bus-Abonnement empfangen wurde.

    private static void processMessage(ServiceBusReceivedMessageContext context) {
        ServiceBusReceivedMessage message = context.getMessage();
        System.out.printf("Processing message. Session: %s, Sequence #: %s. Contents: %s%n", message.getMessageId(),
            message.getSequenceNumber(), message.getBody());
    }
    
  3. Fügen Sie die Methode processError zum Behandeln von Fehlermeldungen hinzu.

    private static void processError(ServiceBusErrorContext context) {
        System.out.printf("Error when receiving messages from namespace: '%s'. Entity: '%s'%n",
            context.getFullyQualifiedNamespace(), context.getEntityPath());
    
        if (!(context.getException() instanceof ServiceBusException)) {
            System.out.printf("Non-ServiceBusException occurred: %s%n", context.getException());
            return;
        }
    
        ServiceBusException exception = (ServiceBusException) context.getException();
        ServiceBusFailureReason reason = exception.getReason();
    
        if (reason == ServiceBusFailureReason.MESSAGING_ENTITY_DISABLED
            || reason == ServiceBusFailureReason.MESSAGING_ENTITY_NOT_FOUND
            || reason == ServiceBusFailureReason.UNAUTHORIZED) {
            System.out.printf("An unrecoverable error occurred. Stopping processing with reason %s: %s%n",
                reason, exception.getMessage());
        } else if (reason == ServiceBusFailureReason.MESSAGE_LOCK_LOST) {
            System.out.printf("Message lock lost for message: %s%n", context.getException());
        } else if (reason == ServiceBusFailureReason.SERVICE_BUSY) {
            try {
                // Choosing an arbitrary amount of time to wait until trying again.
                TimeUnit.SECONDS.sleep(1);
            } catch (InterruptedException e) {
                System.err.println("Unable to sleep for period of time");
            }
        } else {
            System.out.printf("Error source %s, reason %s, message: %s%n", context.getErrorSource(),
                reason, context.getException());
        }
    }
    
  4. Aktualisieren Sie die main-Methode, um die Methoden sendMessage, sendMessageBatch und receiveMessages aufzurufen und InterruptedException auszulösen.

    public static void main(String[] args) throws InterruptedException {
        sendMessage();
        sendMessageBatch();
        receiveMessages();
    }
    

Ausführen der App

Führen Sie das Programm aus. Die Ausgabe sollte in etwa wie folgt aussehen:

  1. Wenn Sie Eclipse verwenden, klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie Export aus, erweitern Sie Java, wählen Sie Ausführbare JAR-Datei aus, und führen Sie diese Schritte aus, um eine ausführbare JAR-Datei zu erstellen.

  2. Wenn Sie beim Computer mit einem anderen Benutzerkonto als dem zur Rolle Azure Service Bus-Datenbesitzer hinzugefügten angemeldet sind, führen Sie diese Schritte aus. Andernfalls überspringen Sie diesen Schritt und fahren mit der Ausführung der JAR-Datei im nächsten Schritt fort.

    1. Installieren Sie die Azure CLI auf Ihrem Computer.

    2. Führen Sie den folgenden CLI-Befehl aus, um sich bei Azure anzumelden. Verwenden Sie das Benutzerkonto, das Sie zur Rolle Azure Service Bus-Datenbesitzer hinzugefügt haben.

      az login
      
  3. Führen Sie die JAR-Datei mit dem folgenden Befehl aus.

    java -jar <JAR FILE NAME>
    
  4. Im Konsolenfenster wird die folgende Aus angezeigt:

    Sent a single message to the topic: mytopic
    Sent a batch of messages to the topic: mytopic
    Starting the processor
    Processing message. Session: e0102f5fbaf646988a2f4b65f7d32385, Sequence #: 1. Contents: Hello, World!
    Processing message. Session: 3e991e232ca248f2bc332caa8034bed9, Sequence #: 2. Contents: First message
    Processing message. Session: 56d3a9ea7df446f8a2944ee72cca4ea0, Sequence #: 3. Contents: Second message
    Processing message. Session: 7bd3bd3e966a40ebbc9b29b082da14bb, Sequence #: 4. Contents: Third message
    

Auf der Seite Übersicht für den Service Bus-Namespace im Azure-Portal wird die Anzahl eingehender und ausgehender Nachrichten angezeigt. Warten Sie etwa eine Minute lang, und aktualisieren Sie die Seite dann, damit die neuesten Werte angezeigt werden.

Anzahl ein- und ausgehender Nachrichten

Navigieren Sie unten im mittleren Bereich zur Registerkarte Themen, und wählen Sie das Thema aus, um die Seite Service Bus-Thema für Ihr Thema anzuzeigen. Auf dieser Seite sollten im Diagramm Nachrichten vier ein- und vier ausgehende Nachrichten angezeigt werden.

Ein- und ausgehende Nachrichten

Wenn Sie den Aufruf receiveMessages in der main-Methode auskommentieren und die App dann erneut ausführen, werden auf der Seite Service Bus-Thema acht eingehende Nachrichten (vier davon neu), aber nur vier ausgehende Nachrichten angezeigt.

Aktualisierte Themenseite

Wenn Sie auf dieser Seite ein Abonnement auswählen, gelangen Sie zur Seite Service Bus-Abonnement. Auf dieser Seite werden die Anzahl aktiver Nachrichten, die Anzahl unzustellbarer Nachrichten und weitere Informationen angezeigt. Dieses Beispiel enthält vier aktive Nachrichten, die der Empfänger noch nicht empfangen hat.

Anzahl aktiver Nachrichten

Nächste Schritte

Weitere Informationen finden Sie in der folgenden Dokumentation bzw. unter den folgenden Beispielen: