2

我在搞乱这个参数并遇到了一些奇怪的事情。没有它我的应用程序运行正常,但是当我将此行添加到配置时:

 config.put(StreamsConfig.NUM_STREAM_THREADS_CONFIG, "3");

CPU 使用率不会超过零。应用似乎没有做任何事情。没有错误。

是否有一些建议的方法来增加 KStreams 应用程序的线程使用率?或者只是“相信力量”,让它一起运行?


编辑:

  1. 我有两个分区
  2. 已通过kafka-consumer-groups- 大量可用记录检查了消费者滞后
  3. 即使只有 1 个分区 - 为什么有多个线程什么都不做?0% CPU。
4

1 回答 1

7

你有多少个分区?如果您只有一个分区,那么增加线程数不会产生任何影响,因为分区数定义了最大并行度。因此,如果您有 1 个分区和 3 个线程,那么您将只有 1 个忙线程。

检查输入主题是否有可用于消费的数据。确保您已StreamsConfig.AUTO_OFFSET_RESET_CONFIG设置为latest. 如果您之前使用相同的方式运行它,applicationId那么 Kafka Streams 可能已经消耗了所有数据,因此将无事可做。在这种情况下,您可以使用不同的主题applicationId,也可以使用Kafka Streams 重置工具来重置主题。

此设置用于某些测试,即KStreamRepartitionJoinTest并且似乎工作正常。

于 2016-09-07T13:31:22.360 回答