Kafka KStream - 显着的启动延迟

时间:2016-10-03 22:09:24

标签: java apache-kafka apache-kafka-streams

我遇到了基于 KStreams 的应用程序的问题:它将运行一次,当我停止/重新启动时,它会“卡住”并且不再继续进行,直到我删除它具有的各种主题创建。 每个时间都不会发生这种情况,但往往不会发生。

通常,当我将新的(呃)版本复制到工作虚拟机时(出于速度原因,在与kafka集群相同的子网中),会发生这种情况。

当它被楔住时,我会看到;

  1. “连接”:org.apache.zookeeper.ZooKeeper - Initiating client connection
  2. “客户”:[StreamThread-1] INFO o.a.k.s.p.internals.StreamTask - Creating restoration consumer client
  3. “Ping”:我会看到这些,应用程序不会正常关闭。它必须被杀死。
  4. 在任何这些情况下,消息通常会无限期地重复(好 - 至少在午餐+会议中一直都是这样.IE太长了。)

    在发生这种情况之前,应用程序正在“干净地”关闭。

    我做错了什么?

    编辑:

    这是最近的一次 - 20分钟后我遇到了一系列错误:

      

    org.apache.kafka.common.errors.TimeoutException:包含101条记录的批次因超时请求来自代理的元数据而过期

    接下来是:

      

    org.apache.kafka.clients.consumer.CommitFailedException:由于该组已经重新平衡并将分区分配给另一个成员,因此无法完成提交

    - >这是一个很好的技巧,因为不是其他成员

1 个答案:

答案 0 :(得分:2)

如果您使用的是Kafka 0.10.0.x,那么您可能会遇到一个已知问题:

https://cwiki.apache.org/confluence/display/KAFKA/KIP-62%3A+Allow+consumer+to+send+heartbeats+from+a+background+thread

这已经在Kafka的up0ming 0.10.1.0版本中得到了解决,我建议你试用新版本来看看这个问题是否会消失。