【问题标题】:Why to use SpringKafka Template in place existing Kafka Producer Consumer api?为什么要使用 SpringKafka 模板代替现有的 Kafka Producer Consumer api?
【发布时间】:2019-09-19 17:48:53
【问题描述】:

spring Kafka 模板有什么好处?

我已经尝试了 Kafka 现有的 Producer/Consumer API。用起来很简单,那为什么要用Kafka模板呢。

【问题讨论】:

    标签: spring apache-kafka


    【解决方案1】:

    在高层次上,好处是您可以更轻松地外部化您的属性对象,并且您可以只专注于记录处理逻辑

    此外,Spring 还集成了许多其他组件。

    注意:其他选项仍然存在,例如 Reactor Kafka、Alpakka、Apache Camel、Smallrye 反应式消息传递、Vert.x……但它们都封装了相同的 Kafka API。

    所以,我会说你(勉强)为了方便而交易效率

    【讨论】:

      【解决方案2】:

      Kafka 模板内部使用 Kafka 生产者,因此您可以直接使用 Kafka API。使用 Kafka 模板的好处是它提供了向 Kafka 主题发送消息的不同方法,您可以在此处查看 KafkaProducerKafkaTemplate 之间的 API 比较:

      https://kafka.apache.org/10/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html https://docs.spring.io/spring-kafka/api/org/springframework/kafka/core/KafkaTemplate.html

      您可以看到KafkaTemplate 提供了许多额外的方式将数据发送到 Kafka 主题,因为有各种 send 方法,而有些调用与 Kafka API 相同,只是从 KafkaTemplate 转发到 KafkaProducer

      由开发者决定使用什么。如果您觉得使用KafkaTemplate 很容易,因为您不必创建ProducerRecord,一个简单的send 方法将为您完成所有工作。

      【讨论】:

      • 感谢您强调的差异,并了解使用 spring 的好处。但是我们仍然在 spring 4.x 和 spring-kafka 上使用 spring 5,并且说我们不希望 kafka 依赖 spring (仅)。所以我唯一需要做的就是为 Producer 创建一个单例对象样板代码。你能强调一下使用 spring-kaka 的一些主要原因吗?
      猜你喜欢
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多