Apache kafka Kafka Streams拓扑卡在num.stream.threads=50和100个分区中

Apache kafka Kafka Streams拓扑卡在num.stream.threads=50和100个分区中,apache-kafka,apache-kafka-streams,Apache Kafka,Apache Kafka Streams,有一种拓扑结构: kStreamBuilder.stream(kafkaProperties.getInboundTopicName(), consumed) .filterNot((k,v) -> Objects.isNull(v)) .transform(() -> new CustomTransformer(...)) .transform(() -> new AnotherTransformer(.

有一种拓扑结构:

kStreamBuilder.stream(kafkaProperties.getInboundTopicName(), consumed)
            .filterNot((k,v) -> Objects.isNull(v))
            .transform(() -> new CustomTransformer(...))
            .transform(() -> new AnotherTransformer(...))
            .to(kafkaProperties.getOutTopicName(), resultProduced);
配置

num.stream.threads: 50
在启动时,应用程序会不断记录消息(我不是100%确定它会被卡住,但20分钟后状态和CPU没有变化,网络使用率非常高):

等等

主题有100个分区

我们注意到:每个转换器都使用自己的persistentStateStore。将其替换为inMemoryStateStore后,上面仍有日志,但约3分钟后拓扑成功启动

卡夫卡流版本2.1.0。
代理版本1.1.0

很难说。线程似乎从消费群体中退出。可能尝试增加
会话.timeout.ms
?尝试了,但没有帮助。由于num.stream.threads的数量较少:32,因此工作正常。是的,它记录了几次相同的事情,但几分钟后它成功启动。也许你可以增加代理设置
组。初始。再平衡。延迟。ms
——注意,只有当你有一个空的消费者组时,这才有效。
State transition from RUNNING to PARTITIONS_REVOKED    
AbstractCoordinator          : [Consumer clientId=consumer_id-StreamThread-1-consumer, groupId=group_id] (Re-)joining group
AbstractCoordinator          : [Consumer clientId=consumer_id-StreamThread-2-consumer, groupId=group_id] (Re-)joining group
AbstractCoordinator          : [Consumer clientId=consumer_id-StreamThread-3-consumer, groupId=group_id] (Re-)joining group
AbstractCoordinator          : [Consumer clientId=consumer_id-StreamThread-4-consumer, groupId=group_id] (Re-)joining group
AbstractCoordinator          : [Consumer clientId=consumer_id-StreamThread-5-consumer, groupId=group_id] (Re-)joining group