如果找不到主题,Kafka 不会释放线程
Kafka does not release the thread, if it does not find topic
我注意到如果没有生产者在其中生成消息的主题,因为 kafka 不会释放线程,我们无法获得对我的 http 请求的响应。
有没有办法配置 Kafka,如果我们收到 UNKNOWN_TOPIC_OR_PARTITION
忽略它并且不尝试发送消息。
我看到下面的错误正在堆积。
[Producer clientId=session-service-1] Error while fetching metadata with correlation id 28 : {*****.session-service.test.v1=UNKNOWN_TOPIC_OR_PARTITION}
虽然我发现了任何异常,但它打断了流程。
try {
ListenableFuture<SendResult<String, SessionEvent>> future = kafkaTemplate.send(topicName, sessionEvent);
future.addCallback(sessionEvent.getFutureCallback());
} catch (Throwable e) {
log.error("Error", e);
}
原来虽然是异步方法,但我的应用程序没有配置异步方法。
所以它正在执行同步方法。但是我没有抛出任何异常..所以Kafka仍在尝试将消息发送到无效主题。
我注意到如果没有生产者在其中生成消息的主题,因为 kafka 不会释放线程,我们无法获得对我的 http 请求的响应。
有没有办法配置 Kafka,如果我们收到 UNKNOWN_TOPIC_OR_PARTITION
忽略它并且不尝试发送消息。
我看到下面的错误正在堆积。
[Producer clientId=session-service-1] Error while fetching metadata with correlation id 28 : {*****.session-service.test.v1=UNKNOWN_TOPIC_OR_PARTITION}
虽然我发现了任何异常,但它打断了流程。
try {
ListenableFuture<SendResult<String, SessionEvent>> future = kafkaTemplate.send(topicName, sessionEvent);
future.addCallback(sessionEvent.getFutureCallback());
} catch (Throwable e) {
log.error("Error", e);
}
原来虽然是异步方法,但我的应用程序没有配置异步方法。
所以它正在执行同步方法。但是我没有抛出任何异常..所以Kafka仍在尝试将消息发送到无效主题。