Ejercicio: Envío de 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. Complete los pasos siguientes localmente.

Creación de un proyecto de Spring Boot

Para crear nuestro proyecto de Spring Boot, usamos 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=3.3.0.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 Service Bus Spring Boot Starter

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

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

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

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

    spring.jms.servicebus.connection-string=<xxxxx>
    spring.jms.servicebus.idle-timeout=20000
    spring.jms.servicebus.pricing-tier=premium
    
  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, agregamos la lógica de negocio para enviar mensajes a una cola de Service Bus.

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

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

Ejecutar la aplicación localmente

  1. Vuelva a la raíz de la carpeta de ejemplo spring-sender-application donde se encuentra el pom.xml archivo y ejecute el siguiente comando 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 completado el inicio de la aplicación, puede 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 del 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.

Consulte los mensajes en la cola de Service Bus.

Nota:

Aunque ver los mensajes ayuda a comprender el lado de 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 izquierdo, seleccione Explorador de Service Bus.

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

    Captura de pantalla de la vista previa del explorador de Service Bus.

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

    Recorte de pantalla del explorador de Service Bus con mensajes inspeccionados