我正在服务中运行多个Kafka流实例。我想动态调整num.stream.threads
配置,以在程序运行时控制每个实例的优先级。
我没有在KafkaStream
类上找到相关方法。
我想知道是否还有其他方法?
答案 0 :(得分:2)
创建KafkaStreams
时,无法在运行时对其进行更新(它不仅与属性num.stream.threads
有关,而且还与其他属性有关)。
作为一种解决方法,您可以通过停止现有的KafkaStreams
并创建并启动一个新的num.stream.threads
来重新创建特定的{{1}},而无需停止其他流并且无需重新启动应用程序。它是否适合您的需求取决于您的特定用例。
这可以通过几种选择来实现。其中之一-根据特定的kafka流,更新数据库中的配置(例如{{1}}),并从应用程序的每个实例中(例如,每10分钟通过cron表达式)从数据库中获取数据,如果发现更新,则停止现有并启动需要更新的配置的新KafkaStream。如果您只有一个应用程序实例,则可以通过REST轻松实现。
答案 1 :(得分:1)
目前不可能。
如果要更改线程数,则需要使用KafkaStreams#close()
停止程序,使用更新的配置创建新的KafkaStreams
实例,并使用KafkaStreams#start()
启动新实例。