使用spring集成消息频道和kafkaproducer向kafka主题生成消息有什么区别?

swvgeqrz  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(310)

我看到有两种方法可以生成到kafka主题的消息,一种是使用kafkaproducer.send(producerrecord<k,v>record),另一种是使用(springframework.message)messagechannel.send(message)。前者返回未来,后者返回布尔值。我想了解这两种方法之间的区别或一种方法优于另一种方法的优点,以便为特定的情况选择合适的方法。如果有人能解释一下我会很感激的。

vnzz0bqm

vnzz0bqm1#

这个 KafkaProducer 是一个普通的apachekafka客户端api。你可以用它做任何你需要的事情,自己写所有的逻辑。那完全可以。
另一方面,如果您希望使用更高级的api,并且您的应用程序完全基于spring,那么您肯定应该考虑将spring用于apache kafka框架:https://spring.io/projects/spring-kafka. 它提供了一个众所周知的模板模式实现 KafkaProducer - KafkaTemplate .
spring与kafka的通道适配器实现集成(https://docs.spring.io/spring-integration/docs/current/reference/html/kafka.html#kafka)当您的应用程序基于企业集成模式,并且逻辑以集成流的形式组成时,就很方便了。这样,当消息被放置到特定的通道时,通道适配器订户将呼叫 KafkaTemplate 为了一个 KafkaProducer.send() 在下面。是的,这个通道适配器实现处理 Future 为了我们。
您可能只需要了解更多关于spring集成的信息,以及何时在普通的ApacheKafkaAPI上使用它。。。

相关问题