Въведение

В развиващия се пейзаж на микроуслуги и облачни приложения, управляваната от събития архитектура се превръща в подход за улесняване на безпроблемната комуникация между микроуслугите. В екосистемата на Java Spring, Spring Cloud Stream е мощна рамка, предназначена да улесни разработката на управлявани от събития, базирани в облак приложения. Тази публикация има за цел да ви преведе през първите ви стъпки с Spring Cloud Stream.

Какво е Spring Cloud Stream?

Spring Cloud Stream е рамка, изградена върху Spring Boot и Spring Integration. Той предоставя платформа за свързване за изграждане на приложения, управлявани от съобщения. Spring Cloud Stream позволява на разработчиците да пишат силно мащабируеми микроуслуги, управлявани от събития, свързани със системи за споделени съобщения. Рамката поддържа различни системи за съобщения, включително RabbitMQ, Apache Kafka, Google PubSub и др.

Предимства на Spring Cloud Stream

  1. Абстракция върху системите за съобщения:Spring Cloud Stream осигурява абстракция върху различни междинни програми за съобщения. Тази абстракция позволява на разработчиците да работят на високо ниво на обработка, без да се фокусират върху подробностите на основните брокери на съобщения.
  2. Простота на програмиране: С използването на автоматичното конфигуриране на Spring Boot и модела за програмиране на Spring Integration, Spring Cloud Stream опростява писането на приложения, управлявани от съобщения.
  3. Постоянна поддръжка за публикуване и абониране: Осигурява постоянен, траен абонамент и възможност за динамично мащабиране нагоре и надолу.

Настройване на вашето първо пролетно приложение за облачен поток

Сега, след като сте запознати с това какво представлява Spring Cloud Stream, нека създадем нашето първо приложение. Ще разработваме просто приложение за обработка на съобщения, което получава и обработва съобщения от брокер на съобщения. За целите на този урок ще използваме RabbitMQ като наш междинен софтуер за съобщения.

Стъпка 1: Настройване на вашия проект

Най-лесният начин за стартиране на приложение Spring Boot е чрез Spring Initializr.

  • Изберете проект Gradle (или проект Maven, ако предпочитате).
  • Изберете Java като ваш език.
  • Задайте версията на Spring Boot на стабилната версия по вашето време.
  • В метаданните на проекта задайте група на „com.example“, артефакт на „streamapp“ и име на „stream-app“.
  • Добавете зависимостите „Cloud Stream“, „RabbitMQ“ и „Lombok“.
  • Кликнете върху „Генериране“, за да изтеглите проекта.

След като го изтеглите, извлечете съдържанието и го отворете в любимата си IDE.

Стъпка 2: Конфигуриране на Spring Cloud Stream

Във файла application.yml (намерен в директорията с ресурси) добавете следното:

spring:
  cloud:
    stream:
      bindings:
        input:
          destination: myQueue
          group: myGroup
      rabbit:
        bindings:
          input:
            consumer:
              auto-bind-dlq: true

В горната конфигурация „myQueue“ е името на опашката RabbitMQ, а „myGroup“ е потребителската група на вашето приложение.

Стъпка 3: Създаване на процесора за съобщения

Във вашето приложение създайте нов клас, наречен MessageProcessor.

import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Sink;

@EnableBinding(Sink.class)
public class MessageProcessor {
    
    @StreamListener(Sink.INPUT)
    public void processMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

В горния код използвахме @EnableBinding(Sink.class), за да кажем на Spring Cloud Stream, че това е процесор за съобщения. Интерфейсът Sink е предварително дефиниран интерфейс от Spring Cloud Stream, който има входен канал.

Стъпка 4: Стартиране на приложението

За да стартирате приложението, изпълнете главния клас (StreamAppApplication). След като приложението започне да работи, то ще започне да приема съобщения от опашката RabbitMQ с име „myQueue“ и да ги отпечатва на конзолата.

Това завършва първите ви стъпки с Spring Cloud Stream. Успешно създадохте приложение, което консумира съобщения от RabbitMQ.

Заключение

Spring Cloud Stream е мощна рамка, която позволява на разработчиците да създават с лекота управлявани от събития облачни приложения. С абстракцията, която предоставя, разработчиците могат да се съсредоточат върху бизнес логиката, вместо да се тревожат за свързване и управление на системи за съобщения. Докато продължавате да изследвате Spring Cloud Stream, ще разкриете повече от неговите стабилни възможности, които помагат при разработването на приложения за мащабируеми микроуслуги. От настройване на обвързвания, създаване и използване на съобщения до поддръжка за тестване, Spring Cloud Stream е неразделна част от инструментариума на разработчиците на Spring в пейзажа на микроуслугите.

Не забравяйте, че пътуването към овладяването на всяка технология започва с първите стъпки. Не се страхувайте да изцапате ръцете си, изследвайте и експериментирайте. Приятно кодиране!

  1. Официална документация на Spring Cloud Stream
  2. Хранилище на Spring Cloud Stream GitHub
  3. Първи стъпки с Spring Initializr

Хареса ли ви четенето? Все още не сте среден член? Можете да подкрепите работата ми директно, като се регистрирате чрез моята реферална връзка тук. Става бързо, лесно и не струва нищо допълнително. Благодаря за подкрепата!