Kafka Template 和 Kafka Producer 有什么区别?

5

我发现Kafka模板内部使用了Kafka producer,想知道具体区别。同时,与Kafka producer相比,我发现Kafka模板中有许多可用的send()方法。
请帮我解决这个问题,如果有人了解更多,请告诉我。

2个回答

10

生产者是一种设计模式,而KafkaTemplate则封装了一个Producer实例并提供了方便的方法来向Kafka主题发送消息。(来源)

Kafka Producer 是Apache Kafka中定义的。而KafkaTemplate 则是Spring对其进行的实现(虽然它没有直接实现Producer),所以它提供了更多可用的方法。你可以使用KafkaTemplate来快速开始或自己实现一个Producer来解决问题。


1
我已经查看了该源页面,如果有其他问题请告诉我。 - Aadi
我添加了一些细节。我猜,KafkaTemplate 是您的选择。 - Milgo
Spring for Apache Kafka 将熟悉的 Spring Messaging 抽象添加到 Kafka (KafkaTemplate, @KafkaListener - 类似的抽象也适用于 RabbitMQ 和 JMS。它是一个更高级别的抽象。https://spring.io/projects/spring-kafka - Gary Russell

1
Kafka Producer 是发布订阅模式中的生产者。 如果您想使用Spring来实现Apache Kafka,Spring提供了一个称为Kafka Template的包装器,用于此生产者。 Kafka模板是Spring提供的一个类,用于将消息生成到Kafka主题中。 Kafka模板的工作原理: Kafka模板在不同的层中执行其任务 -
  1. SERLIALIZER 我们打算发送到Kafka主题的任何记录都需要序列化为字节。(涉及2种技术 - a) key.serializer b) value.serializer )
  2. Partitioner 它确定消息将进入哪个分区。
  3. Record Accumulator 它缓冲Kafka模板发送的所有记录,并且仅当该缓冲区已满时才将这些记录发送到Kafka Topics。(但是,我们可以设置linger.ms文件的时间限制)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接