Перейти к основному содержимому

72 записи с тегом "Reactive"

Посмотреть все теги

· 1 мин. чтения

RxJava — это реализация Reactive Extensions для среды Java.

Библиотека использует комбинацию функциональных и реактивных методов, которые могут представлять собой элегантный подход к программированию, управляемому событиями, со значениями, которые меняются со временем, и где потребитель реагирует на данные по мере их поступления.

./cb58e6b0884709341fec0565308cec3f.png

Основы RxJava

./e2c8ef7893b50cfc57c6adcb2ab5a8a5.png

Расширенный RxJava

./0ff7f81552409cd496925bf477eed866.png

Интеграция RxJava с другими библиотеками

· 1 мин. чтения

./a24f166de8204c49751f0d5ba0a27f43.png

Начало работы с Spring WebFlux

./3b72c1442c81b2c86a34df43bb5f6df5.png

Весенний веб-клиент

./6fa0ab2c3dc26978c581de4eb8ecd389.png

Spring Security в реактивных приложениях

./fd89552b8aa557fbc165544bba3d17db.png

Отладка реактивных приложений

./dd84627e865cf4d421c8f1f998fd817f.png

Расширенные руководства по Spring Reactive

· 3 мин. чтения

1. Обзор

Иногда в реактивном программировании у нас может быть издатель большой коллекции элементов. В некоторых случаях потребители этого издателя могут не иметь возможности обрабатывать все элементы за один раз. Поэтому нам может потребоваться публиковать каждый элемент асинхронно, чтобы соответствовать скорости обработки потребителя.

В этом уроке мы рассмотрим некоторые способы, с помощью которых мы можем преобразовать наш Mono коллекции в Flux элементов коллекции .

2. Описание проблемы

При работе с Reactive Streams мы используем Publisher и две его реализации, Flux и Mono . Хотя Mono<T> — это тип Publisher<T> , который может выдавать 0 или 1 элемент типа T , Flux<T> может выдавать от 0 до N элементов типа T .

· 6 мин. чтения

1. Введение

В этом руководстве мы рассмотрим поддержку JAX-RS для реактивного (Rx) программирования с использованием Джерси API. В этой статье предполагается, что читатель знаком с клиентским API REST Джерси.

Некоторое знакомство с концепциями реактивного программирования будет полезно, но не обязательно.

2. Зависимости

Во-первых, нам нужны стандартные зависимости клиентской библиотеки Джерси:

· 7 мин. чтения

1. Введение

Spring WebFlux обеспечивает реактивное программирование для веб-приложений. Асинхронный и неблокирующий характер реактивного дизайна повышает производительность и использование памяти. Project Reactor предоставляет эти возможности для эффективного управления потоками данных.

Однако противодавление является распространенной проблемой в таких приложениях. В этом руководстве мы объясним, что это такое и как применить механизм обратного давления в Spring WebFlux, чтобы смягчить его.

2. Противодавление в реактивных потоках

Из-за неблокирующего характера реактивного программирования сервер не отправляет весь поток сразу. Он может передавать данные одновременно, как только они станут доступны. Таким образом, клиент ожидает меньше времени, чтобы получить и обработать события. Но есть проблемы, которые нужно преодолеть.

· 4 мин. чтения

1. Обзор

В этом руководстве мы собираемся показать, как настроить Spring WebClient — реактивный HTTP-клиент — для регистрации запросов и ответов.

2. Веб-клиент

WebClient — реактивный и неблокирующий интерфейс для HTTP-запросов, основанный на Spring WebFlux . Он имеет функциональный, гибкий API с реактивными типами для декларативной композиции.

За кулисами WebClient вызывает HTTP-клиент. Reactor Netty используется по умолчанию , также поддерживается реактивный HttpClient Jetty. Кроме того, можно подключить другие реализации HTTP-клиента, настроив ClientConnector для WebClient .

3. Регистрация запросов и ответов

· 4 мин. чтения

1. Обзор

В этой статье мы собираемся создать быстрый пример, используя новый Spring 5 WebSockets API вместе с реактивными функциями, предоставляемыми Spring WebFlux.

WebSocket — это хорошо известный протокол, обеспечивающий полнодуплексную связь между клиентом и сервером, обычно используемый в веб-приложениях, где клиент и сервер должны обмениваться событиями с высокой частотой и с малой задержкой.

Spring Framework 5 модернизировал поддержку WebSockets в рамках, добавив реактивные возможности в этот канал связи.

Мы можем найти больше о Spring WebFlux здесь .

2. Зависимости Maven

· 20 мин. чтения

1. Введение

В этом руководстве мы разберемся с основами создания реактивных систем на Java с использованием Spring и других инструментов и фреймворков.

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

2. Что такое реактивные системы?

За последние несколько десятилетий в технологическом ландшафте произошло несколько потрясений, которые привели к полной трансформации того, как мы видим ценность технологий. Компьютерный мир до появления Интернета и представить себе не мог, какими способами и средствами он изменит нашу сегодняшнюю жизнь.

· 10 мин. чтения

1. Обзор

В этом руководстве мы покажем, как мы можем использовать R2DBC для выполнения операций с базой данных реактивным способом .

Чтобы изучить R2DBC, мы создадим простое приложение Spring WebFlux REST, которое реализует операции CRUD для одного объекта, используя для достижения этой цели только асинхронные операции.

2. Что такое R2DBC ?

Реактивная разработка находится на подъеме: новые фреймворки появляются каждый день, а существующие получают все большее распространение. Однако основной проблемой реактивной разработки является тот факт, что доступ к базе данных в мире Java/JVM остается в основном синхронным . Это прямое следствие того, как был разработан JDBC, и привело к некоторым уродливым хакам для адаптации этих двух принципиально разных подходов.

· 5 мин. чтения

1. Обзор

В этом руководстве мы увидим, как мы можем реализовать API-интерфейсы на основе Server-Sent-Events с помощью Spring.

Проще говоря, Server-Sent-Events или сокращенно SSE — это стандарт HTTP, который позволяет веб-приложению обрабатывать однонаправленный поток событий и получать обновления всякий раз, когда сервер отправляет данные.

Версия Spring 4.2 уже поддерживала его, но, начиная с Spring 5, у нас появился более идиоматический и удобный способ его обработки .

2. SSE с Spring 5 Webflux