Почему StreamListener устарел

Я использую Spring Cloud Stream 3.1.2 вместо KafkaStreams. Модели программирования:

  • Функциональное программирование
  • Императивное программирование

Последний использует аннотации, как и все другие аннотации, которые Spring предоставляет для использования. Но упоминается, что

Начиная с версии связывателя 3.1.0, мы рекомендуем использовать описанную выше модель функционального программирования для приложений на основе связывателя Kafka Streams. Поддержка StreamListener устарела, начиная с версии 3.1.0 Spring Cloud Stream.

На мой взгляд, старшая модель более читабельна (по крайней мере, для меня). Может ли кто-нибудь объяснить, почему было решено отказаться от использования функционального программирования и будет ли оно удалено?


person sina askarnejad    schedule 02.04.2021    source источник


Ответы (1)


Из сообщения в блоге Spring (https://spring.io/blog/2019/10/17/spring-cloud-stream-functional-and-reactive) он говорит a functional programming model in Spring Cloud Stream (SCSt). It’s less code, less configuration. Most importantly, though, your code is completely decoupled and independent from the internals of SCSt. Это в пользу использования абстракций потока событий (таких как Flux и Mono), которые предоставляются Project Reactor (https://projectreactor.io/). Императивные функции запускаются при каждом отдельном событии, а реактивные функции запускаются один раз.

person Felipe    schedule 03.04.2021