Рубрики
Без рубрики

Spring Webflux – Приложения, реагирующие на Java – Часть 1

В последнее время программирования реактивной расширялся все больше и больше,уже подходили к ди… С тегами spring, webflow, java, реактивный.

В последнее время программирования реактивной расширялся все больше и больше,уже обсуждается на разных языках, но в Java-это что-то новое для вас? То эта серия статей для вас!!!

Nesta série de artigos ира абордар асунтос комо программасао креатив, Весенний веб-поток, Проект Реактора и Сети.

В данном сначала я перечислю некоторые общие понятия прежде чем углубиться в каждой из них, начнем:)

Проблема:

Мы надеемся, что наши приложения будут масштабируемые, мы должны использовать ресурсы более эффективно, время задержки должны быть минимальными, нам нужны ответы на наши запросы, мы имеем дело с запросами конкурентов (каждый поток потребляет немного памяти), Api традиционных работают как синхронно, так и блокирующий.

Чтобы обойти это, у нас был рост обратных вызовов и Futures: Callbacks не имеет чтение легким и техническое обслуживание сложно, сложны (могут образовывать callback hell), через них не возвращает никакого значения.

Future: возвращает экземпляр типа future и трудно подняться, чтобы несколько асинхронных операций,в качестве альтернативы, начиная с Java 8 появился Completable Future), которая поддерживает функциональное программирование и facílita использование нескольких асинхронных операций, однако, как и нет ничего идеального, не является хорошим вариантом для асинхронных вызовов с несколькими items.

Способ разработки Api

  • Асинхронный и не блокирующий
  • За пределами модели поток по запросу
  • Уменьшается количество потоков, созданных

И горе входит программирования, реактивного, ок, но что она имеет разные?

  • асинхронный и не блокирующий
  • Поток данных как бизнес-ориентированный событий/сообщений
  • Код сохраняет стиль функционального программирования.
  • Противодавление nos Потоки de dados

Вернемся больше внимания, чтобы часть потока данных: данные могут поступать из базы данных внешних файлов, встроенные сервисы и другие приложения, etc, для каждого элемента из этого источника данных, у нас есть событие или сообщение, которое возникает после выполнения этого события/сообщения, у нас есть сообщение об ошибке или, что было полным. Для заявки сохранение данных, например,у нас есть событие onNext(Product):

Список <Продукт>.GetAllProducts();

Когда мы называем данные из базы данных, например,вызов возвращает и для каждого элемента, который будет выпущен onNext(Product), и, закончив список у нас событие onComplete (), чтобы сообщить вам, что наш запрос закончился.

И если наша заявка вас есть какие-либо ошибки? Вместо возвращения событие onComplete() у нас будет событие OnError() и не будем ожидаемое содержимое.

Спецификация Реактивного потока

Состоит из набора спецификаций для использования потоков, созданной такими компаниями, как Ведущие и Netflix, из этих спецификаций, мы:

  • Publishers: Интерфейс Publisher,является поставщиком неограниченное количество элементов в последовательном порядке и публикует в соответствии с требованиями, которые получает от своих Subscribers (объясню что является ниже). Даже publisher может удовлетворить различные Subscribers динамически в разное время. Издателей наши источников данных.

издатель открытого интерфейса{ публичная недействительная подписка (Подписчик супер T> s); }

  • Подписчиков: Появляется только один вызов для OnSubscribe, после чего передать один экземпляр сделать Подписчиком пункт Издатель. подписаться (Подписчик). Nenhuma notificaçao серра recebida по запросу на подписку. запрос (язык) сега чамадо. После того, как призыв начнется: Один или более вызовов onNext(Object) будут выпущены, пока число максимальное значение Подписка. запрос (длинный) сейя атингидо. Ума уника чамада де эрро онЕррор (Бросаемый) или, что было полным запрос onComplete(). Это требование может быть помечено путем Подписки.request (long) всякий раз, когда экземпляр Модуля может обрабатывать больше.

подписчик открытого интерфейса{ публичная отмена подписки (Подписки); публичная пустота на следующем (Т т); ошибка публичного аннулирования (Выбрасываемый t); публичная пустота завершена(); }

E Подписка:

подписка на общедоступный интерфейс{ публичный запрос на аннулирование (длинный n); публичная отмена аннулирования (); }

  • Processor: Представляет собой один шаг обработки, который столько Подписчиков, сколько Издатель, который принимает стандарты, и другое.

процессор открытого интерфейса расширяет Подписчика , Издателя { }

что: T – тип элемента, на который помечен для Подписки. R – тип элемента, на который помечен, Publisher.

Это была первая часть серии статей, в которой мы говорим о некоторых исторических и преимущества реактивного программирования, в pŕoximo я коснусь основания , которые привели к созданию Webflux и их различия Spring MVC

Вопросы или отзывы?

Ниже некоторые ссылки и интересный контент на эту тему:

Манифест Реактивного

Потоки Реактивной

Потоки Реактивной

Курс WebFlux

До свидания!

Оригинал: “https://dev.to/womakerscode/spring-webflux-aplicacoes-reativas-em-java-parte-1-ljf”