Kafka Stream停止接收消息

时间:2017-04-27 16:08:29

标签: apache-kafka apache-kafka-streams

我有一个使用版本0.10.2.0运行的Kafka Stream。一切看起来都很好,直到流只是停止接收新消息。

流状态为RUNNING,日志中没有例外。使用this FAQ entry我检查了延迟并且它正在增加。

我的配置如下:

Properties props = new Properties();
    props.put(StreamsConfig.TIMESTAMP_EXTRACTOR_CLASS_CONFIG,
              CustomTimestampExtractor.class.getName());
    props.put(StreamsConfig.APPLICATION_ID_CONFIG, streamName);
    props.put(StreamsConfig.CLIENT_ID_CONFIG, streamName);
    props.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, myConfig.getBrokerList());
    props.put(StreamsConfig.KEY_SERDE_CLASS_CONFIG, Serdes.String().getClass().getName());
    props.put(StreamsConfig.VALUE_SERDE_CLASS_CONFIG, Serdes.ByteArray().getClass().getName());
    props.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, myConfig.getCommitIntervalMs()); // 5000
    props.put(StreamsConfig.METRICS_RECORDING_LEVEL_CONFIG, "DEBUG");
    props.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, myConfig.getStreamThreadsCount()); // 1
    props.put(StreamsConfig.CACHE_MAX_BYTES_BUFFERING_CONFIG, myConfig.getMaxCacheBytes()); // 524_288_000L
    props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
    props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, 50);

查看JMX指标,线程在那里并且正在运行,只是没有做任何事情......实例仍然卡住,所以我可以在需要时检查额外的东西。任何帮助表示赞赏

编辑(更多信息)

当我执行kafka-run-class kafka.tools.ConsumerOffsetChecker时,owner列显示"无"

编辑2

在一个停滞的实例上,我看到名为" pool-X-thread-Y" in" Park"州。健康的实例不会表现出相同的行为。

编辑3

我发现了一条非常有趣的信息,指标consumer-coordinator-metrics > heartbeat-response-time-max(接收心跳请求响应所花费的最长时间)读取的是43,461秒(差不多12小时),这与挂起的时间一致。难道这不会以某种方式触发失败吗?

0 个答案:

没有答案