Упражнение. Отправка сообщений в служебную шину Azure
В этом уроке вы создадите приложение Spring Boot, которое отправляет сообщения в очередь служебной шины Azure. Выполните следующие действия локально.
Создание проекта Spring Boot
Чтобы создать проект Spring Boot, мы используем Spring Initializr со следующей командной строкой:
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 -
Отправьте сообщения в очередь служебной шины
Теперь давайте отправим некоторые сообщения в очередь служебной шины.
Добавление зависимости maven для начального запуска служебной шины Spring Boot
В файле pom.xml
в вашем spring-sender-application
добавьте следующую команду под разделом "dependencies":
<!-- 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>
Добавление параметров конфигурации
В папке
spring-sender-application\src\main\resources
измените файлapplication.properties
, добавьте следующие параметры:spring.jms.servicebus.connection-string=<xxxxx> spring.jms.servicebus.idle-timeout=20000 spring.jms.servicebus.pricing-tier=premium
Задайте для свойства
spring.jms.servicebus.connection-string
строку подключения к пространству имен вашей службы Service Bus, которую вы сохранили ранее.
Добавление кода для отправки сообщений в служебную шину
Затем мы добавим бизнес-логику для отправки сообщений в очередь сервисной шины.
В каталоге src/main/java/com/example/demo
создайте файл SendController.java
со следующим содержимым:
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;
}
}
Локальное запуск приложения
Вернитесь в корневой каталог примера
spring-sender-application
папку, в которой находится файлpom.xml
, и выполните следующую команду, чтобы запустить приложение Spring Boot. На этом шаге предполагается, что на компьютере Windows установленmvn
, и он находится вPATH
.mvn spring-boot:run
После завершения запуска приложения можно выбрать следующие ссылки для отправки сообщений в очередь служебной шины.
http://localhost:8080/messages?message=Hello
http://localhost:8080/messages?message=HelloAgain
http://localhost:8080/messages?message=HelloOnceAgain
Можно изменить строковое значение в параметре запроса сообщения и отправить любой текст в очередь служебной шины.
Браузер отображает все, что передается в качестве параметра строки запроса сообщения, что означает, что служебная шина принимает сообщение.
Смотреть сообщения в очереди Сервисной Шины
Заметка
Хотя просмотр сообщений помогает понять сторону отправки сообщений, этот шаг необязателен.
Эти сообщения будут получены на следующем шаге этого руководства.
Вы можете перейти к просмотру сообщений в обозревателе служебной шины на портале Azure:
Вернитесь на портал Azure, выберите Очереди в меню слева в разделе Объекты.
Выберите соответствующую очередь. Например, очередь для этой демонстрации - test-queue-jms .
В левой области выберите обозреватель служебной шины.
Выберите Просмотреть с начала. Вы увидите все три сообщения, отправленные с помощью команд HTTP.
Выберите сообщение, чтобы увидеть текст сообщения в нижней области.