Ejercicio: enviar mensajes a Azure Service Bus
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
En la carpeta
spring-sender-application\src\main\resources
, edite el archivoapplication.properties
y agregue estos parámetros:spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000
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
Vuelva a la raíz de la carpeta
spring-sender-application
de ejemplo en la que se encuentra el archivopom.xml
y ejecute el comando siguiente para iniciar la aplicación de Spring Boot. Para este paso, se presupone que tienemvn
instalado en el equipo Windows y que se encuentra enPATH
.mvn spring-boot:run
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:
Vuelva a Azure Portal y seleccione Colas en el menú de la izquierda, debajo de Entidades.
Seleccione la cola correspondiente. Por ejemplo, la cola de esta demostración es test-queue-jms.
En el panel de la izquierda, seleccione Service Bus Explorer.
Seleccione Ver desde el principio. Debería ver los tres mensajes que envió mediante comandos HTTP.
Seleccione un mensaje para ver el cuerpo del mensaje en el panel inferior.