apache-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仍在尝试将消息发送到无效主题。
推荐阅读
- javascript - 如何在 vue bootstrap 中启用悬停下拉菜单?
- jquery - 更改为 ES6 导入语法时,Openlayers 分页符
- ionic-framework - 添加到构造函数后的 Ionic 4 cordova-plugin-ftp 问题
- python-3.x - 带有打印功能的 Python 3 中的 TypeError
- sparql - sparql 中 DESCRIBE 和 CONSTRUCT 的区别
- python - 在 Jenkins 中使用管道执行 pytest
- jquery - 获取jQuery数据表中选定类以外的数据
- android - Flutter 上的试驾:找不到 android.jar 文件
- gitlab - 如何使用 Gitlab CI 添加 Backfire 性能测试?
- php - PHP命令每次都打开另一个窗口