@KafkaListener,@ StreamListener和@ServiceActivator之间的区别?

时间:2017-11-28 15:29:16

标签: spring-cloud-stream spring-kafka

我想将Kafka与Spring Boot和Avro架构一起使用。 但是我被困在'这三个听众之间有什么区别?'。 创建侦听器有三种可能性:使用 - @KafkaListener@StreamListener@ServiceActivator注释方法。似乎所有人都在监听传入事件,但我无法看到/发现这些解决方案之间的差异。

  1. 这三者之间有什么区别?
  2. 每种解决方案的前奏和缺点是什么?
  3. 哪个更符合使用Avro的目的?

1 个答案:

答案 0 :(得分:7)

所以,我将从@KafkaListener开始。这个很简单,因为它来自“spring-kafka”项目,可以在Spring Cloud Stream之外使用。

@ServiceActivator来自“spring-integraton”项目,类似于@KafkaListener可以在Spring Cloud Stream之外使用。

两者都可以在Spring Cloud Stream应用程序中使用 - 主要是为了方便。

@StreamListener是唯一一个Spring Cloud Stream原生的。

对于简单的情况,您可以选择。对于更复杂的情况,请参阅特定注释的额外功能。例如,您可以在使用@StreamListener时定义条件。