Благодаря Spring Cloud Stream и Spring Initializr разрабатывать микросервисы, управляемые событиями, стало проще, чем когда-либо. Даже с такими связующими, поддерживаемыми партнерами, как Solace PubSub+! Если вы не знакомы с Spring Cloud Stream или Spring Initializr, в этом посте будет предоставлена краткая справочная информация, а также учебное пособие, чтобы вы могли попробовать его самостоятельно.
Фреймворк Весеннего облачного потока
Существует целый ряд Весенних проектов для создания приложений всех типов. При разработке масштабируемых микросервисов, управляемых событиями, Spring Cloud Stream часто является предпочтительной платформой, поскольку она обеспечивает гибкую модель программирования и позволяет разработчикам создавать микросервисы, управляемые событиями, без необходимости изучать API обмена сообщениями. Вместо изучения API-интерфейсов обмена сообщениями Spring Cloud Stream просто требует от разработчиков изучения основных концепций, основанных на сообщениях, таких как публикация-подписка и группы потребителей. Платформа использует привязки облачных потоков, которые существуют для нескольких брокеров сообщений, включая Solace PubSub +, Apache Kafka и RabbitMQ.
PubSub+ и инициализация пружины
Связующее средство Solace PubSub+ Spring Cloud Stream автоматически добавляется в проекты Spring Initializr при выборе обоих Solace PubSub+ и Облачный поток зависимости. Для тех, кто не знаком с start.spring.io , это позволяет разработчикам создавать проекты Spring Boot, предварительно заполненные зависимостями, необходимыми им для быстрого начала работы.
Существует несколько сценариев, которые могут разыграться при создании проекта с Solace PubSub + в качестве зависимости с использованием Spring Initializr:
- Ваши зависимости включают Solace PubSub+, но не требуют связующего.
- Ваши зависимости включают Solace PubSub + И Cloud Stream, в которых указано, что для этого требуется связующее.
В сценарии 1 Spring Initializr добавляет в ваш проект средство запуска solace-spring-boot. Этот стартер позволяет использовать Spring Boot либо с API Solace JMS, либо с API Solace Java (JCSMP).
В сценарии 2 Spring Initializr понимает, что вы пытаетесь создать микросервис Spring Cloud Stream, и автоматически включает в свой проект средство связывания Solace Spring Cloud Stream.
Использование Solace с Spring позволяет микросервисам, созданным с использованием экосистемы Spring, взаимодействовать как с приложениями Spring, так и с приложениями, отличными от Spring, в многооблачных, гибридных и безоблачных средах.
5-Минутный урок (серьезно, всего 5 минут)
У вас уже установлены JDK, Maven и Docker? Если да, то это займет у вас всего 5 минут. Видеодоказательства в этом видео на YouTube! Так почему бы не попробовать самому!
Если по какой-то причине вы не можете использовать Docker, проверьте эта кодовая ссылка о том, как это сделать с помощью PubSub + Cloud.
Давайте начнем…
Развертывание брокера событий Solace PubSub+ с помощью Docker
Перейти к start.spring.io и добавьте зависимости Solace PubSub+ и Облачный поток . Да, эта ссылка добавила их для вас 😜 .
Нажмите Создать
Распакуйте загруженный zip-файл и импортируйте его в свою среду разработки в качестве проекта Maven
Открыть Демоприложение.java и добавьте следующую весеннюю фасоль
* Сохранить и запустить
Перейдите на страницу Попробуй меня! пункт меню в вашем локальном менеджере PubSub +, который был развернут вместе с контейнером Docker на шаге 1. Ваше имя пользователя/пароль по умолчанию являются admin/admin.
На стороне подписчика нажмите Подключиться , введите
заглавный-0в поле Подписаться на тему для получения прямых сообщений и нажмите Подписаться .На стороне издателя нажмите Подключите , введите
в верхнем регистре-0в качестве темы для публикации и нажмите кнопку Опубликовать кнопка.Бум! С тобой покончено! Было ли это достаточно просто?
* Возможно, вы думаете: “Что! Информация о подключении не требуется?! “Это верно. По умолчанию связующее утешение знает, как автоматически подключаться к локальному контейнеру docker!
за кулисами
Хорошо, итак, вы выполнили описанные выше действия, но что именно произошло? Позвольте мне объяснить:
- Вы развернули микросервис Spring Boot, который содержал
java.util.функцию. Функциякомпонент в вашем коде и как облачный поток, так и связывающий облачный поток в качестве зависимостей. Это сообщило Spring Boot, что вы хотите создать управляемые событиями микросервисы с использованием Spring Cloud Stream. - После того, как Spring Boot понял, что вам нужен микросервис облачного потока, он понял, что ему необходимо создать привязки облачного потока для обмена событиями с доступным брокером. Итак, основываясь на имени вашей функции в верхнем регистре , она создала привязку ввода по умолчанию
в верхнем регистре-0. Затем связующий поток Solace Cloud подписался на темув верхнем регистре 0в брокере событий Solace PubSub+. - Когда вы опубликовали событие в Попробуй меня! инструмент, вы опубликовали событие в теме
в верхнем регистре 0на брокере Утешения, которое содержало полезную нагрузку “Привет, мир!” - Ваш микросервис получил это событие через ранее настроенную привязку, идентифицировал полезную нагрузку как строковый тип и вызвал ваш компонент верхнего регистра для обработки, который преобразовал полезную нагрузку “Привет, мир!” в “ПРИВЕТ, МИР!” и вернул строку.
- Поток Spring Cloud включил эту возвращаемую строку в качестве полезной нагрузки в исходящее сообщение для связующего утешения, которое, в свою очередь, опубликовало ее в теме
верхний регистр-0на брокере Утешения. - The Попробуй-Меня! затем инструмент смог получить обработанное сообщение и отобразить его на экране.
Что вам следует попробовать дальше?
- Читайте о как использовать асинхронный API для создания приложения облачного потока
- Узнайте как Утешение работает с инициализацией Spring на start.spring.io
- Ознакомьтесь с этим codelab для получения дополнительной информации об основах облачного потока и для расширения того, что вы сделали здесь с составом функций:
- Код для связующего с открытым исходным кодом Solace PubSub+ Spring Cloud Stream можно найти в репозитории github.
Продукты Solace/solace-spring-cloud
Поддерживает все продукты solace spring cloud
- Смотрите нашу недавнюю живую сессию кодирования с участием Олега, ведущего разработчика проекта Spring Cloud Stream.
Сообщение Начало работы с потоком Spring Cloud с использованием Spring Initializr появилось первым в блоге Solace .
Оригинал: “https://dev.to/solacedevs/getting-started-with-spring-cloud-stream-using-spring-initializr-jnp”