当前位置: 首页 > 知识库问答 >
问题:

KafkaTemboard和KafkaProducer发送方法之间的区别?

韩景胜
2023-03-14

我的问题是,在使用kafka的spring boot微服务中,什么是适合使用KafkaTemplate的。send()或KafkaProducer。发送()

我使用了Kafka康苏默而不是Kafka利斯纳来调查记录,因为Kafka利斯纳正在获取记录,当他们谈到主题时,我希望根据业务需求定期调查记录。

已经看过Kafka制作人的文件了https://kafka.apache.org/10/javadoc/org/apache/kafka/clients/producer/KafkaProducer.html

还有Spring的Kafka坦普尔

https://docs.spring.io/spring-kafka/reference/html/#kafka-模板

我无法做出决定,比如什么是理想的选择,或者至少使用一个而不是另一个的原因不清楚?

我需要的是我希望操作是同步的,即我想知道发布是否成功,因为如果记录没有交付,我需要重试发布。

任何帮助都将不胜感激。

共有1个答案

段干庆
2023-03-14

对于第一个问题,我应该使用Kafka模板还是Kafka制作人?

Kafka制作人是在阿帕奇Kafka中定义的。KafkaTemplate是Spring对它的实现(尽管它没有直接实现Producer),因此它提供了更多的方法供您使用。

阅读以下链接:

Kafka模板和Kafka制作人有什么区别?

用于重试机制,以防发布失败。我在另一个问题中回答了这个问题。

acks参数控制在生产者认为写入成功之前必须接收多少个分区副本。

acks参数有三个值:

acks=0时,生产者将不会等待代理的回复,然后再假定消息已成功发送。

acks=1时,生产者将在领导者副本收到消息的那一刻从代理收到成功的响应。如果消息无法写入领导者,生产者将收到错误响应,并可以重试。

acks=all,一旦所有同步副本接收到消息,生产者将从代理收到成功响应。

在Kaka Producer中配置重试的最佳方法

 类似资料:
  • 我对Kafka是完全陌生的,我在使用Kafka制作人时遇到了一些麻烦。生成器的send方法恰好阻塞1min,然后应用程序无一例外地继续。这显然是一些超时,但没有抛出异常。 我在原木上也看不出什么真正的东西。 kafka.properties文件中的属性: 因此,producer.send阻塞1分钟,然后继续。在结尾,Kafka没有储存任何东西,但新的话题被创造出来了。谢谢你的帮助!

  • 问题内容: 我知道,无论与就将计算在东西在AngularJS变化。但是无法理解两者之间到底有什么区别。 我最初的理解是为角表达式计算的,这些角表达式是HTML端在执行函数时所执行的条件。我的想法是否正确? 问题答案: $observe() 是Attributes对象上的一种方法,因此,它只能用于观察/监视DOM属性的值更改。仅用于/调用内部指令。当您需要观察/观察包含插值的DOM属性(即{{}})

  • 问题内容: 我在阅读PEP 0008(样式指南)时,发现它建议在实例方法中使用self作为第一个参数,而在类方法中使用cls作为第一个参数。 我已经使用并编写了一些类,但从未遇到过类方法(嗯,一种将cls作为参数传递的方法)。有人可以告诉我一些例子吗? 谢谢! 问题答案: 实例方法 创建实例方法时,第一个参数始终为。您可以随意命名,但含义始终相同,并且由于其是命名约定,因此应使用。 (通常)在调用

  • 问题内容: 用修饰的功能和用修饰的功能有什么区别? 问题答案: 也许有点示例代码将有助于:发现其中的差别在调用签名,并且: 以下是对象实例调用方法的常用方法。对象实例,a作为第一个参数隐式传递。 使用时,对象实例的类作为第一个参数而不是隐式传递。 你也可以使用该类进行呼叫。实际上,如果你将某些东西定义为类方法,则可能是因为你打算从类而不是从类实例调用它。本来会引发,但效果很好: 人们发现类方法的一

  • 问题内容: 之间有什么区别 和 问题答案: 在Django的查询集文档都对这个很清楚的: 返回与给定查找参数匹配的对象,该参数应采用“字段查找”中所述的格式。 如果找到多个对象,则get()会引发MultipleObjectsReturned。MultipleObjectsReturned异常是模型类的属性。 如果找不到给定参数的对象,则get()会引发DidNotExist异常。此异常也是模型类

  • 问题内容: 我只是在阅读教科书中给我的课文,我不确定自己是否明白我在说什么。这基本上是在告诉我静态方法或类方法包括关键字“修饰符” static。但是我真的不知道那意味着什么吗? 有人可以简单地向我解释什么是静态方法或类方法吗? 另外,我可以简单解释一下什么是Instance方法吗? 这是他们在教科书中给我的: 存在或不存在静态修饰符具有重要的实际意义。一旦Java处理了它所属的类的定义,就可以调