希望这是一个快速简单的问题。现在我有一个应用程序在同一个流中有两个独特的任务。当整个应用程序运行时,分区在两个任务之间不平衡,这是一个问题,因为其中一个任务需要更多资源(内存/ CPU)
为了解决这个问题,我在我的应用程序中创建了两个具有不同流构建器的唯一流,并分别启动它们。通过这种方式设置,分区以我预期的方式平衡。
kafkaStreams0 = new KafkaStreams(kafkaStreamsBuilder0.build(), streamsProperties0)
kafkaStreams1 = new KafkaStreams(kafkaStreamsBuilder1.build(), streamsProperties1)
kafkaStreams0.start()
kafkaStreams1.start()
我在流属性中为每个提供了自己的应用程序ID。关于这一点似乎是一个黑客,但我找不到任何关于这是否是一个有效的解决方案的文档。
作为一个注释:我想避免将它们分成两个应用程序,因为我不想添加操作开销。