Моя цель - сделать приложение с использованием Spring cloud stream и Kafka и открыть «реактивный» мир. У меня что-то работает. Вот часть моего потребителя. В моем П, я объявил:Весенний облачный поток с реактивными потоками
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-kafka</artifactId>
</dependency>
Это 1.0.0.RELEASE, что я использую.
Я объявил мои каналы
public interface MyChannels {
public static final String TOPIC_NAME = "myTopicName";
@Input(TOPIC_NAME)
MessageChannel receive();
}
, а затем моя служба
@MessageEndpoint
@EnableBinding(MyChannels.class)
public class MyConsumer {
@Autowired
private MyChannels channels;
@ServiceActivator(inputChannel=MyChannels.TOPIC_NAME)
public void receive(MyObject object) {
//apply my business logic
//like save my object in a database
}
}
Я получаю мое сообщение хорошо. Я видел в моих зависимостях, что spring-integration-kafka зависит от ядра реактора. Достаточно ли сделать мое приложение «реактивным»? Что я должен сделать, чтобы применить стиль реактивного программирования?
Должен ли я использовать @EnableRxJavaProcessor, если да, то я не понимаю, как это сделать.
Если я не ясен, не стесняйтесь писать его в комментарии. спасибо
Благодаря Marius , я надеялся, что вы или один из членов вашей команды увидите мое сообщение :) Я читал вопрос github два или три раза со вчерашнего дня. Мне трудно понять, как EnableRxJavaProcessor будет потреблять мое сообщение. Есть ли больше документации или что-то, что могло бы помочь мне больше в любом месте? – vincent
Привет, вам нужно '@ EnableRxJavaProcessor', только если вы хотите, чтобы ваше приложение было обработчиком сообщений на основе RxJava. Этот пример поможет вам лучше понять: https://github.com/spring-cloud/spring-cloud-stream-samples/tree/master/rxjava-processor. –