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

Spring Kafka-consumer.poll()是什么时候在引擎盖后面调用的?

宇文念
2023-03-14

我有一个spring boot应用程序,其中我有一个Kafka消费者。

我还希望更清楚地了解什么是消息侦听器容器和最终的消息侦听器。

提前谢谢你。

共有1个答案

尤夕
2023-03-14

在1.3及以上版本中,每个消费者只有一个线程;下一次poll()是在侦听器处理了上一次poll的最后一条消息之后执行的。

在早期版本中,有两个线程,在侦听器线程处理第一批处理时执行第二次(可能是第三次)轮询。这是必要的,以避免重新平衡由于一个缓慢的监听器。线程模型非常复杂,我们必须在必要时暂停/恢复消费者。KIP-62修复了再平衡问题,所以我们能够使用今天使用的更简单的线程模型。

 类似资料:
  • 问题内容: 当我创建自己的Android自定义类时,它就是本机类。然后,当我要重写基方法,我总是叫方法,就像我一直做的,等 我认为就是这样,因为从一开始,Android团队就建议我们始终调用每个方法重写。 但是,在 许多书籍中, 我可以看到比我自己更有经验的开发人员经常忽略调用,而且我真的怀疑他们是因为缺乏知识而这样做。例如,看看这个基本的SAX,其中解析器类中被省略,并且: 如果尝试通过Ecli

  • 抱歉,如果这是一个天真的问题,但我已经看了谷歌员工的一系列谈话,仍然不明白为什么我会使用AE而不是CF? 如果我理解正确的话,这两种服务的整体概念都是构建“微服务架构”。 CF和AE都是无状态的 两者都应该在有限的时间内执行 两者都可以与dbs和其他gcp api交互。 然而,AE必须封装到自己的服务器中。基本上,它在与CF相同的功能基础上利用了许多复杂性。那么,我应该什么时候使用它来代替CF呢?

  • 除了阅读github中的代码之外,是否有关于signalr.redis包如何工作的白皮书类型的文档?具体地说,我想知道它为Redis添加了哪些键、更新/删除策略等。当查看Redis内部时,我只看到以下调用中指定的一个键(即“signalr.Redis.sample”): 这把钥匙好像是Redis的柜台。我假设正在创建其他键并迅速删除,以方便连接到Redis的每个应用服务器之间的消息。

  • 我目前正在用C#编写一个纯粹出于学术目的的JVM(也许将来会构建一个混合的.NET和Java/Scala应用程序)。 我编写了一个简单的JAVA类: 并将其编译为。当我使用我的反编译程序(我已经将其作为JVM的一部分编写)反编译它时,我看到这个方法的如下说明: 在常量池中查找索引处的常量时,我看到一个InvokeDynamic-Constant条目,其中包含以下数据: 我想这是有道理的(我更多的是

  • 我一直在尝试React钩子,它们似乎可以简化存储状态之类的事情。然而,他们似乎用魔法做了很多事情,我找不到一篇关于他们如何实际工作的好文章。 第一件看起来很神奇的事情是,调用像useState()这样的函数是如何在每次调用setXXX方法时导致函数组件的重新渲染的? 当功能组件甚至不具备在挂载/卸载上运行代码的能力时,像use效应()这样的东西是如何伪造组件的? useContext()实际上是如

  • 本文向大家介绍什么时候用delegate,什么时候用Notification?相关面试题,主要包含被问及什么时候用delegate,什么时候用Notification?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate针对one-to-one关系,并且reciever可以返回值 给sender,notification 可以针对one-to-one/many/none,recieve