spring-kafka - 如何在 @KafkaListener 中使用 ContainerStoppingErrorHandler 来终止应用程序以防 Kafka 服务器出现 DisconnectException
问题描述
我想处理服务器 DisconnectException 并在服务器 DisconnectException 发生时终止应用程序
如何捕获此错误并停止应用程序?
@KafkaListener(topics = { "${kafka.status-topic}", "${kafka.start-topic}" }, containerFactory = "kafkaListenerContainerFactory")
public void listen(@Payload final String message,
@Header(KafkaHeaders.RECEIVED_TOPIC) final String topic) {
log.debug("Received '{}'-message {} from Kafka", topic, message);
LinkedList<IMessageListener> topicListeners = listeners.get(topic);
for (final IMessageListener l : topicListeners) {
// call listeners in a separate thread
executor.execute(new Runnable() {
@Override
public void run() {
l.messageReceived(topic, message);
}
});
}
}
解决方案
您可以尝试捕获异常,然后System.exit(0)
在 catch 块内调用
推荐阅读
- python - 使用不同的重复键读取 JSON 并打印输出
- android - setOnClickListener 在片段中不起作用
- python-3.x - 如何将 tkinter 与函数及其变量一起使用
- javascript - Webpack 源映射奇怪的行为
- ios - 在 Xcode Beta 中分发构建时出现“IPA 处理失败”
- node.js - MongoDB 版本 4^ -- 获取节点 js 中所有数据库的列表
- java - 在 Selenium Java 中找不到元素
- networking - 为什么在 Spring Tool Suite 4 的内容开始时出现 SunCertPathBuilderException?
- c - uint16_t 和 uint32_t 之间的区别
- wordpress - Wordpress,条件小部件显示