Ćwiczenie — odbieranie komunikatów z usługi Azure Service Bus

Ukończone

Teraz utwórzmy aplikację Spring Boot, która może odbierać komunikaty z kolejki usługi Azure Service Bus.

Tworzenie projektu Spring Boot

Otwórzmy nowe okno terminalu i tak jak zrobiliśmy to w przypadku aplikacji nadawcy Spring Boot, użyjemy Spring Initializr do utworzenia projektu Spring Boot.

curl https://start.spring.io/starter.tgz -d type=maven-project -d dependencies=web -d baseDir=spring-receiver-application -d bootVersion=3.3.0.RELEASE -d javaVersion=1.8 | tar -xzvf -

Odbieranie komunikatów z kolejki usługi Service Bus

Ponownie dodamy zależność i konfigurację.

Dodawanie zależności narzędzia maven dla szablonu startowego Spring Boot usługi Service Bus

W pliku pom.xml w spring-receiver-applicationdodaj następujące polecenie w obszarze zależności:

		<!-- https://mvnrepository.com/artifact/com.azure.spring/spring-cloud-azure-starter-servicebus-jms -->
		<dependency>
		    <groupId>com.azure.spring</groupId>
		    <artifactId>spring-cloud-azure-starter-servicebus-jms</artifactId>
		    <version>5.18.0</version>
		</dependency>

Dodawanie parametrów konfiguracji

  1. W folderze spring-receiver-application\src\main\resources zmodyfikuj plik application.properties, dodaj następujące parametry:

    server.port=9090
    
    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. Ustaw właściwość spring.jms.servicebus.connection-string na ciąg połączenia do przestrzeni nazw usługi Service Bus, którą zapisałeś wcześniej.

Dodawanie kodu do odbierania komunikatów z usługi Service Bus

Następnie dodajemy logikę biznesową do odbierania komunikatów z kolejki usługi Service Bus.

W katalogu src/main/java/com/example/demo utwórz plik ReceiveController.java zawierający następującą zawartość:

package com.example.demo;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class ReceiveController {
    
    @JmsListener(destination = "test-queue-jms")
    public void receiveMessage(String message) {
        System.out.println("Received <" + message + ">");
    }
}

Uruchamianie aplikacji lokalnie

  1. Wróć do katalogu głównego przykładowego folderu spring-receiver-application, w którym znajduje się plik pom.xml, i uruchom następujące polecenie, aby uruchomić aplikację Spring Boot. W tym kroku przyjęto założenie, że na komputerze z systemem Windows zainstalowano mvn i znajduje się on w PATH.

    mvn spring-boot:run
    
  2. Gdy aplikacja się uruchomi, w oknie konsoli zostaną wyświetlone następujące komunikaty dziennika.

    Received <Hello>
    Received <HelloAgain>
    Received <HelloOnceAgain>
    

    Wygląd komunikatów wskazuje, że aplikacja Spring Boot pomyślnie odbiera wiadomości z kolejki Service Bus.

Zobacz cały przepływ pracy w akcji

Jeśli aplikacja nadawcy z jednostki 4 jest nadal uruchomiona, możesz wybrać następujący link, aby wysłać komunikat do kolejki Service Bus.

http://localhost:8080/messages?message=HelloOnceAgainAndAgain

Aplikacja odbiorcy odbiera komunikat z kolejki usługi Service Bus i wyświetla go w konsoli.

Received <HelloOnceAgainAndAgain>