Ejercicio: Envío de 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. 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
En la
spring-sender-application\src\main\resources
carpeta , edite elapplication.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
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
Vuelva a la raíz de la carpeta de ejemplo
spring-sender-application
donde se encuentra elpom.xml
archivo y ejecute el siguiente comando 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 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:
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 izquierdo, seleccione Explorador de Service Bus.
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.