如果找不到主题,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仍在尝试将消息发送到无效主题。