4


Моя цель - сделать приложение с использованием 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, если да, то я не понимаю, как это сделать.

Если я не ясен, не стесняйтесь писать его в комментарии. спасибо

ответ

6

Использование реактора является внутренним для проекта и не делает ваше приложение реактивным (а не только :) :).

Использование поддержки RxJava охватывается справочной документации здесь: http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_rxjava_support

Мы намерены обеспечить более широкую поддержку в Spring Облако поток 1.1 здесь: https://github.com/spring-cloud/spring-cloud-stream/issues/458

Чирза, Marius

+0

Благодаря Marius , я надеялся, что вы или один из членов вашей команды увидите мое сообщение :) Я читал вопрос github два или три раза со вчерашнего дня. Мне трудно понять, как EnableRxJavaProcessor будет потреблять мое сообщение. Есть ли больше документации или что-то, что могло бы помочь мне больше в любом месте? – vincent

+0

Привет, вам нужно '@ EnableRxJavaProcessor', только если вы хотите, чтобы ваше приложение было обработчиком сообщений на основе RxJava. Этот пример поможет вам лучше понять: https://github.com/spring-cloud/spring-cloud-stream-samples/tree/master/rxjava-processor. –

Смежные вопросы