有一个拓扑:
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都没有变化,网络使用率很高):
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
等
主题有100个分区。
我们注意到的是:每个转换器都使用它自己的persistentStateStore。将其替换为inMemoryStateStore后,上面仍然写有日志,但在大约3分钟后拓扑成功启动。
Kafka流2.1.0版。 经纪人版本1.1.0