【发布时间】:2017-10-14 09:52:15
【问题描述】:
我对属性 heartbeat.interval.ms 和 poll() 方法感到困惑。
我希望 poll() 方法会在我们调用 poll() 方法时发送心跳。比如说,heartbeat.interval.ms 配置为 1 秒,但 poll() 方法需要 2 秒才能完成处理。它会在 2 秒后还是每隔一秒通过后台线程发送一次心跳。
【问题讨论】:
标签: apache-kafka kafka-producer-api
我对属性 heartbeat.interval.ms 和 poll() 方法感到困惑。
我希望 poll() 方法会在我们调用 poll() 方法时发送心跳。比如说,heartbeat.interval.ms 配置为 1 秒,但 poll() 方法需要 2 秒才能完成处理。它会在 2 秒后还是每隔一秒通过后台线程发送一次心跳。
【问题讨论】:
标签: apache-kafka kafka-producer-api
就我个人而言,我认为heartbeat.interval.ms 是心跳间隔的下限。也就是说,如果设置为 1 秒,心跳线程必须等待至少 1 秒才能发送心跳请求,但线程有可能等待 1.5 秒再发送请求。
从 0.10.1 开始,心跳从调用 poll 的用户线程移至单独的线程,因此它不再与 poll 事物交错。详情见更多信息:KIP-62
【讨论】: