Övning – Skicka meddelanden till Azure Service Bus

Slutförd

I den här lektionen skapar du ett Spring Boot-program som skickar meddelanden till en Azure Service Bus-kö. Slutför följande steg lokalt.

Skapa ett Spring Boot-projekt

För att skapa vårt Spring Boot-projekt använder vi Spring Initializr med följande kommandorad:

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

Skicka meddelanden till en Service Bus-kö

Nu ska vi skicka några meddelanden till en Service Bus-kö.

Lägg till maven-beroendet för Service Bus Spring Boot Starter

I filen pom.xml i din spring-sender-applicationlägger du till följande kommando under beroenden:

		<!-- 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>

Lägg till konfigurationsparametrarna

  1. I mappen spring-sender-application\src\main\resources redigerar du application.properties-filen och lägger till följande parametrar:

    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  2. Ange egenskapen spring.jms.servicebus.connection-string till anslutningssträngen till ditt Service Bus-namnområde, som du sparade tidigare.

Lägga till kod för att skicka meddelanden till Service Bus

Sedan lägger vi till affärslogik för att skicka meddelanden till en Service Bus-kö.

I katalogen src/main/java/com/example/demoskapar du en SendController.java fil med följande innehåll:

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;
    }
}

Kör programmet lokalt

  1. Växla tillbaka till roten i exempelmappen spring-sender-application där den pom.xml filen finns och kör följande kommando för att starta Spring Boot-programmet. Det här steget förutsätter att du har mvn installerat på din Windows-dator och att det finns i PATH.

    mvn spring-boot:run
    
  2. När programmet har startats kan du välja följande länkar för att skicka meddelanden till Service Bus-kön.

    http://localhost:8080/messages?message=Hello
    
    http://localhost:8080/messages?message=HelloAgain
    
    http://localhost:8080/messages?message=HelloOnceAgain
    

    Du kan ändra strängvärdet i meddelandefrågeparametern och skicka valfri text till Service Bus-kön.

    Webbläsaren visar det som skickas som frågesträngsparametern för meddelandet, vilket innebär att Service Bus accepterar meddelandet.

Se meddelandena i Service Bus-kön

Not

Även om att titta på meddelandena hjälper till att förstå sändsidan av dem, är detta steg valfritt.

Dessa meddelanden tas emot i nästa steg i den här självstudien.

Du kan fortsätta att visa meddelandena i Service Bus-utforskaren i Azure-portalen:

  1. I Azure-portalen väljer du Köer på den vänstra menyn under Entiteter.

  2. Välj lämplig kö. Kön för den här demonstrationen är till exempel test-queue-jms.

  3. I den vänstra rutan väljer du Service Bus Explorer.

  4. Välj Titta från början. Du bör se alla tre meddelanden som du har skickat med HJÄLP av HTTP-kommandon.

    Skärmbild av service bus-utforskarens tittupplevelse.

  5. Välj ett meddelande om du vill se meddelandetexten i det nedre fönstret.

    Skärmbild av Service Bus-utforskaren med visade meddelanden.