Статьи

SpringBoot: Performance War

Матрица производительности реактивных API с WebFulx и Redis

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

В этой статье мы будем:

  • Создайте набор полностью неблокирующих REST API с использованием SpringBoot 2.0, WebFlux и Reactive Redis.
  • Тест производительности вышеупомянутых Реактивных API против традиционных нереактивных API

Код, используемый в этом примере, можно загрузить с   GitHub.

Шаг первый: создание скелетного реактивного проекта WebFlux SpringBoot

Создайте проект SpringBoot maven, используя — https://start.spring.io

Добавьте следующие зависимости:

  •  spring-boot-starter-web 
  •  spring-boot-starter-data-redis 
  •  spring-webflux 
  •  spring-boot-starter-data-redis-reactive 

Обратитесь к зависимостям в pom.xml


Вам также может понравиться:
Все о Spring Boot [Учебники и статьи] .

Шаг второй: создание доменных объектов

В демонстрационном проекте используются доменные объекты Customer и Account. Клиент может иметь несколько учетных записей.

Создание двух доменных объектов

Шаг третий: создание неблокирующих реактивных REST API с использованием WebFlux

Создайте REST-контроллер CustomerControllerRx с целью обслуживания следующих реактивных API без блокировки.

  • Добавить / обновить клиента
  • findById клиент

Фрагмент кода использует Mono, который является реализацией интерфейса Reactive streams Publisher и ReactiveRedisTemplate и ReactiveValueOperations для взаимодействия с Redis неблокирующим способом.

Реактивный шаблон Redis

ReactiveRedisTemplate настраивается в   RedisConfigRx

Шаг четвертый: создание синхронного (блокирующего) REST API

Создайте REST-контроллер CustomerController с целью обслуживания API нереактивной блокировки. Мы используем CustomerRepository, который расширяет CurdRepository для взаимодействия с базой данных Redis.

Создание REST-контроллера

Шаг пятый: подключение к Redis с помощью Docker

  • Redis официально не поддерживает Windows. Однако самый простой способ запустить Redis для UNIX или Windows — использовать Docker.
  • Выполните следующие действия, чтобы извлечь образ redis из док-концентратора и запустить порт 6379 в автономном режиме.

Джава