如何在@KafkaListener 中使用 ContainerStoppingErrorHandler 终止 Kafka 服务器 DisconnectException 的应用程序

How to use ContainerStoppingErrorHandler in @KafkaListener to terminate application incase of Kafka server DisconnectException

我想处理Server 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);
            }
        });
    }
}

您可以尝试捕获异常,然后在 catch 块中调用 System.exit(0)