这里写目录标题
- 1 内存泄露
- 2 生产者报错
1 内存泄露
-
错误信息
反复执行:创建消费者->关闭消费者后,内存缓慢上升且GC不能回收内存 -
错误原因
关闭消费者需要执行KafkaConsumer#close()函数
public void close() {
this.close(Duration.ofMillis(30000L));
}
public void close(Duration timeout) {
if (timeout.toMillis() < 0L) {
throw new IllegalArgumentException("The timeout cannot be negative.");
} else {
this.acquire();
try {
if (!this.closed) {
this.close(timeout.toMillis(), false);
}
} finally {
this.closed = true;
this.release();
}
}
}
- 解决方案
2 生产者报错
- 错误信息:org.apache.kafka.common.config.ConfigException: Invalid value org.apache.kafka.common.serialization.StringSerializer for configuration key.serializer: Class org.apache.kafka.common.serialization.StringSerializer could not be found.
- 错误原因
- 解决方案
创建生产者之前添加代码
Thread.currentThread().setContextClassLoader(null);