Ejercicio: enviar mensajes a Azure Service Bus

Completado

En esta unidad creará una aplicación de Spring Boot que envía mensajes a una cola de Azure Service Bus. Completar los pasos siguientes de forma local.

Creación de un proyecto de Spring Boot

Para crear el proyecto de Spring Boot, usaremos Spring Initializr con la siguiente línea de comandos:

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 -

Envío de mensajes a una cola de Service Bus

Ahora enviaremos algunos mensajes a una cola de Service Bus.

Adición de la dependencia de Maven para el inicio de Spring Boot de Service Bus

En el archivo pom.xml de spring-sender-application, agregue el comando siguiente en las dependencias:

            <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-servicebus-jms-spring-boot-starter</artifactId>
                <version>2.3.3</version>
            </dependency>

Adición de los parámetros de configuración

  1. En la carpeta spring-sender-application\src\main\resources, edite el archivo application.properties y agregue estos parámetros:

    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    
  2. Establezca la propiedad spring.jms.servicebus.connection-string en la cadena de conexión al espacio de nombres de Service Bus, que guardó anteriormente.

Adición de código para enviar mensajes a Service Bus

A continuación, agregaremos la lógica de negocios para enviar mensajes a una cola de Service Bus.

En el directorio src/main/java/com/example/demo, cree un archivo SendController.java que tenga el contenido siguiente:

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

Ejecución de la aplicación de forma local

  1. Vuelva a la raíz de la carpeta spring-sender-application de ejemplo en la que se encuentra el archivo pom.xml y ejecute el comando siguiente para iniciar la aplicación de Spring Boot. Para este paso, se presupone que tiene mvn instalado en el equipo Windows y que se encuentra en PATH.

    mvn spring-boot:run
    
  2. Una vez que se complete el inicio de la aplicación, podrá seleccionar los vínculos siguientes para enviar mensajes a la cola de Service Bus.

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

    Puede cambiar el valor de cadena en el parámetro de consulta de mensaje y enviar cualquier texto a la cola de Service Bus.

    El explorador muestra lo que se pasa como parámetro de cadena de consulta de mensaje, lo que implica que Service Bus acepta el mensaje.

Visualización de los mensajes en la cola de Service Bus

Nota:

Aunque ver los mensajes ayuda a comprender el envío de los mensajes, este paso es opcional.

Estos mensajes se recibirán en el siguiente paso de este tutorial.

Puede continuar para ver los mensajes en el explorador de Service Bus en Azure Portal:

  1. Vuelva a Azure Portal y seleccione Colas en el menú de la izquierda, debajo de Entidades.

  2. Seleccione la cola correspondiente. Por ejemplo, la cola de esta demostración es test-queue-jms.

  3. En el panel de la izquierda, seleccione Service Bus Explorer.

  4. Seleccione Ver desde el principio. Debería ver los tres mensajes que envió mediante comandos HTTP.

    Screenshot of the Service Bus explorer peek experience.

  5. Seleccione un mensaje para ver el cuerpo del mensaje en el panel inferior.

    Screenshot of the Service Bus explorer with peeked messages.