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

max.poll.intervals.ms默认设置为int.max

郭志泽
2023-03-14

Apache Kafka文档说明:

内部Kafka Streams使用者max.poll.interval.ms默认值已从300000更改为integer.max_value

共有1个答案

田彬郁
2023-03-14

它是否使应用程序变得无响应?或者Kafka Streams有一种不同的方法,在处理过程耗时过长时离开消费者群体?

Kafka Streams在此上下文中利用了Kafka consumer客户端的心跳功能,从而解耦心跳(“这个应用程序实例还活着吗?”)从调用到轮询()。两个主要参数是session.timeout.ms(用于心跳线程)和max.poll.interval.ms(用于处理线程),它们的区别在https://stackoverflow.com/A/39759329/1743580中有更详细的描述。

引入心跳是为了允许应用程序实例花费大量时间处理记录,而不会被认为“没有进展”,从而“已死”。例如,你的应用程序可以在一分钟内对一条记录进行大量的处理,同时还会对Kafka说:“嘿,我还活着,我在进步。但我只是还没有完成处理。请继续关注。”

当然,您可以将max.poll.interval.ms从其默认值(integer.max_value)更改为更低的设置,例如,如果在轮询记录之间的时间超过X秒,因此如果处理最新一轮记录的时间超过X秒,您确实希望应用程序实例被视为“已死”。这种配置是否有意义取决于您的特定用例--在大多数情况下,默认设置是安全的。

session.timeout.ms:在使用Kafka的组管理工具时用于检测使用者故障的超时。消费者向代理发送周期性心跳以指示其活跃度。如果在此会话超时到期之前,代理没有接收到心跳,则代理将从组中删除此使用者并启动重新平衡。请注意,该值必须在由group.min.session.timeout.ms和group.max.session.timeout.ms在代理配置中配置的允许范围内。

max.poll.interval.ms:使用使用者组管理时,调用poll()之间的最大延迟。这为使用者在获取更多记录之前可以空闲的时间量设置了一个上限。如果在超时到期之前未调用poll(),则认为使用者失败,组将重新平衡以便将分区重新分配给另一个成员。

 类似资料:
  • 在安装了以管理中的冲突后,仍然会为我打开默认设置: 以下是本回答中提到的配置: 注意:我可以用简单的文件单独运行,但是我不能在我的git项目中运行它。任何想法? 编辑:这里是我的. gitconfig:

  • 什么是Locale Locale是一组描述世界上某一特定区域文本格式和语言习惯的设置的集合。locale名通常由三个部分组成:第一部分,是一个强制性的,表示语言的缩写,例如"en"表示英文或"zh"表示中文。第二部分,跟在一个下划线之后,是一个可选的国家说明符,用于区分讲同一种语言的不同国家,例如"en_US"表示美国英语,而"en_UK"表示英国英语。最后一部分,跟在一个句点之后,是可选的字符集

  • 问题内容: 可以为JPA中的列设置默认值吗?如果使用注释,如何做到这一点? 问题答案: 实际上,在JPA中是可能的,尽管使用批注的属性有些小小的改动,例如:

  • 问题内容: 尝试使用WTForms设置SelectField的默认值时,我像这样将值传递给“默认”参数。 我也尝试了以下方法。 都不将默认选定字段设置为“ Def”。这适用于其他类型的字段,例如TextField。如何设置SelectField的默认值? 问题答案: 你发布的第一种方法是正确的,并且对我有用。唯一无法解释的原因可能是你正在运行旧版本的WTForms,它在1.0.1上对我有效

  • 问题内容: 我刚刚在新的ubuntu系统上安装了maven,其中包括maven-compiler- plugin。我有一个以前可以正常构建的Java项目,默认为javac源,目标为5(jdk 1.5)。但是,该项目现在正在尝试在新系统上使用jdk1.3进行编译。有没有一种简单的方法可以将系统配置为使用> = jdk5? 以下是系统的一些配置详细信息: 我已经检查了maven-compiler-pl

  • 问题内容: 有没有一种方法可以设置查询的模式,以便在其余查询中我可以仅按表名引用表,而无需在表名前添加表名? 例如,我想做这样的事情: 与此相反: 问题答案: 一个快速的谷歌把我指向了这个页面。它说明从sql server 2005开始,您可以使用ALTER USER语句设置用户的默认架构。不幸的是,这意味着您将对其进行永久更改,因此,如果需要在模式之间进行切换,则每次执行存储过程或一批语句时都需