Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GlobalStreamThread正在使用所有JVM内存_Java_Apache Kafka Streams - Fatal编程技术网

Java GlobalStreamThread正在使用所有JVM内存

Java GlobalStreamThread正在使用所有JVM内存,java,apache-kafka-streams,Java,Apache Kafka Streams,我有一个KStream拓扑,我们使用非重叠窗口 .groupBy((userId, brandId) -> brandId, Grouped.with(repartitionTopic, Serdes.String(), Serdes.String())) .windowedBy(TimeWindows.of(ofMinutes(1)).advanceBy(ofMinutes(1)).grace(Duration.ZERO)) .aggregate(() -> 0L, (key, v

我有一个KStream拓扑,我们使用非重叠窗口

.groupBy((userId, brandId) -> brandId, Grouped.with(repartitionTopic, Serdes.String(), Serdes.String()))
.windowedBy(TimeWindows.of(ofMinutes(1)).advanceBy(ofMinutes(1)).grace(Duration.ZERO))
.aggregate(() -> 0L, (key, value, viewCount) -> viewCount + 1, storeBuilder())
.suppress(untilWindowCloses(unbounded())
.toStream()
storeBuilder()
构建窗口存储,它是一个未标记的内存存储,实现如下:

Materialized
    .as(inMemoryWindowStore(storeName, retentionPeriod, windowSize, false)
    .withCachingDisabled()
    .withLoggingDisabled()
    .withKeySerde(keySerde)
    .withValueSerde(valueSerde);
我们不使用任何类型的表格。然而,通过查看堆内存使用情况,我发现有
GlobalStreamThread
消耗了JVM 70%的内存,并且有时由于分配了太多内存而导致JVM崩溃

我想知道,这个
GlobalStreamThread
正在做什么,这是未标记窗口存储的结果吗?

这很奇怪。如果不使用全局KTables或全局state,甚至不应该创建“全局线程”。你用的是什么版本?你能进入
KafkaStreams#start()
看看全局线程是否启动了吗?这很奇怪。如果不使用全局KTables或全局state,甚至不应该创建“全局线程”。你用的是什么版本?您能否进入
KafkaStreams#start()
查看全局线程是否已启动?