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

带有@kafkalistener注释的kafka使用者如何处理max.poll.records

萧繁
2023-03-14

我正在使用spring boot 2.1.7.Release和spring-kafka 2.2.7.Release.并且我正在使用@KafKalistener注释来创建一个消费者,并且我正在使用消费者的所有默认设置。

根据apache kafka文档,'max.poll.records'的默认值是500。

在这里,我试图理解spring是如何处理记录处理的。现在我的问题是,如果我们已经在主题a上发布了500条消息,并且有一个消费者(使用@kafkalistener)订阅了这个主题,

  1. 这个spring侦听器会获得所有这500条记录,然后在将一条记录传递给带有@kafkalistener注释的方法之前进行某种缓存,还是会一次只拉出一条记录并将其传递给带有@kafkalistener注释的方法

共有1个答案

微生曾琪
2023-03-14

@kafkalistener基于KafkaMessageListenerContainer,进而完全基于ConsumerRecords org.apache.kafka.clients.Consumer.Consumer.Poll(Duration timeout) API。

您提到的选项与Apache Kafka的Spring无关。即使没有Spring,你也会处理同样的行为。

有关如何从Kafka提取记录的更多信息,请参阅返回的consumerRecords

对Kafka来说,我们如何获取唱片并不重要。只有抵销提交才是重要的。但那是另一回事。您需要了解Apache Kafka的Spring只是标准Kafka客户端的包装。它并不是一个意见如何投票记录从主题。

 类似资料:
  • 我正在从数据库中提取数据,以检查我是否有可用的系统资源来处理来自KafkaListener的进一步消息。如果我的条件没有满足,那么我希望@KafkaListener暂停,当条件满足时,我希望@KafkaListener恢复。我如何在SpringKafka实现这一点? 另外,为特定分区暂停消费者有什么缺点吗?

  • 我正在使用注释处理器来处理方法参数的注释。 用于参数的注释类型有一个注释@参数 现在,当注释处理器运行时,我想检查参数注释()是否有参数注释。我通过执行以下代码来实现这一点。 由于某种原因,arg始终为空。是否有注释未返回的原因?

  • 我试图创建一个在realm.io之上工作的注释处理器。遗憾的是,要使用realm,你需要一个android项目,而要创建一个注释处理器,你需要一个java项目(以便导入javax.annotation.processing.*) 有人知道如何在android库上导入AbstractProcessor和所有其他需要的东西吗?我找不到这样做的方法(已经将目标兼容性和源兼容性切换到1.7)

  • 我想用C#听Kafka主题的消息。 与Java中一样,还有一个注释@KafkaListener,当添加到函数上方时,它会侦听来自主题的消息,然后执行函数的逻辑。 示例-@KafkaListener(topics=“topicname”,groupId=“groupId”)//这里的函数代码 同样,C#中是否有使用Confluent的注释。Kafka

  • 问题内容: 我正在使用Spring和Hibernate和MySQL开发应用程序。我是Hibernate的新手,做了基本任务… 现在,我需要在选择查询中应用联接,以使用注释从多个表中获取数据。我已经搜寻过,但仍然不知道… 这是我的数据库表和bean类: 我的bean类是: EmployeeInfoForm.java EmployeeLoginForm.java 需求: 我想选择字段 EMPID,em

  • 假设我有两个经纪人。 我读到Kafka制作人创建的制作人线程等于经纪人的数量。在这种情况下,我将有两个内部线程。 假设我有5个主题,每秒只收到200条消息。Kafka如何进行批处理? 一批大小=30条消息。[topic1=5,topic2=10,topic3=3,topic4=10,topic5=2消息]这些是最重要的消息和相应的主题。 Kafka是如何执行批处理的?