Как отправить полезную нагрузку в тему Кафки в ответ, очень общим способом? - PullRequest
1 голос
/ 21 марта 2019

Наш код полностью реагирует, используя Webflux. Мы хотим отправлять сообщения в очередь Kafka и хотим сделать это реактивно.

Я вижу, что существует зависимость реагирования пружинного облака-потока, которая поддерживает функциональность Reactive, но для конкретного случая использования, где это поток данных.

Spring Cloud Stream также поддерживает использование реактивных API, где входящие и исходящие данные обрабатываются как непрерывные потоки данных.

Я понимаю, что есть способ сделать это здесь: https://projectreactor.io/docs/kafka/release/reference/

Но это похоже на тесную связь с конкретными кафками. Мне нравится слабая связь здесь.

Есть ли способ сделать это так, чтобы мой код не был связан с библиотеками Кафки?

1 Ответ

2 голосов
/ 21 марта 2019

Итак, с помощью Spring-Cloud-Stream 2.x мы постепенно отказываемся от реактивного модуля в пользу Spring-Cloud-Function , которая обеспечивает реактивную поддержку из коробки.Это гораздо более простая и, конечно, менее сложная модель программирования.Вот немного подробнее .

В основном в примере из приведенной выше ссылки все, что вам нужно, это изменить саму функцию

@Bean
public Function<Flux<String>, Flux<String>> toUpperCase() {
    return flux -> flux.map(value -> value.toUpperCase());
}

Spring Cloud Stream и SpringCloud Function позаботится о подписке, привязке и т. Д. Подробнее о модели функционального программирования в Spring Cloud Stream.

...