@KafkaListener、@StreamListener 和 @ServiceActivator 的区别?
Posted
技术标签:
【中文标题】@KafkaListener、@StreamListener 和 @ServiceActivator 的区别?【英文标题】:Difference between @KafkaListener, @StreamListener and @ServiceActivator? 【发布时间】:2018-05-12 02:58:27 【问题描述】:我想将 Kafka 与 Spring Boot 和 Avro 模式一起使用。
但我被困在“这三个听众之间有什么区别?”。
创建侦听器有 3 种可能性:使用 - @KafkaListener
、@StreamListener
或 @ServiceActivator
注释方法。似乎他们都在监听传入的事件,但我看不到/发现这些解决方案之间的区别。
-
这三者有什么区别?
每种解决方案的优缺点是什么?
哪个更适合使用 Avro?
【问题讨论】:
【参考方案1】:所以,我将从@KafkaListener
开始。那个很简单,因为它来自“spring-kafka”项目,可以在 Spring Cloud Stream 之外使用。
@ServiceActivator
来自“spring-integraton”项目,与@KafkaListener
类似,可以在 Spring Cloud Stream 之外使用。
两者都可以在 Spring Cloud Stream 应用程序内部使用 - 主要是为了方便。
@StreamListener
是唯一一个原生于 Spring Cloud Stream 的。
对于简单的情况,您可以自行选择。对于更复杂的情况,请参阅特定注释的额外功能。例如,您可以在使用@StreamListener
时定义条件。
【讨论】:
以上是关于@KafkaListener、@StreamListener 和 @ServiceActivator 的区别?的主要内容,如果未能解决你的问题,请参考以下文章