我的目标是使用Spring云流和Kafka创建一个应用程序,并发现“被动”世界。
我有一些有用的东西。这是我消费者的一部分。
在我的pom中,我宣布:
<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依赖于reactor-core。 是否足以使我的应用程序“被动”? 如何应用反应式编程风格?
我是否必须使用@EnableRxJavaProcessor,如果是,我不明白如何。
如果我不清楚,请毫不犹豫地将其写在评论中。感谢
答案 0 :(得分:6)
Reactor的使用是项目的内部,并不会使您的应用程序被动(不仅仅是:))。
此处的参考文档涵盖了RxJava支持的使用:http://docs.spring.io/spring-cloud-stream/docs/current/reference/htmlsingle/#_rxjava_support
我们打算在此提供更广泛的Spring Cloud Stream 1.1支持:https://github.com/spring-cloud/spring-cloud-stream/issues/458
干杯, 的Marius