Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用@KafkaListener时如何检测Spring中不存在的主题_Spring_Apache Kafka - Fatal编程技术网

使用@KafkaListener时如何检测Spring中不存在的主题

使用@KafkaListener时如何检测Spring中不存在的主题,spring,apache-kafka,Spring,Apache Kafka,尝试使用@KafkaListener订阅不存在的主题时,会记录一条警告: 2021-04-22 13:03:56.710 WARN 20188 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-gg-2, groupId=gg] Error while fetching metadata with correlation id 174 : {not_exist

尝试使用@KafkaListener订阅不存在的主题时,会记录一条警告:

2021-04-22 13:03:56.710  WARN 20188 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-gg-2, groupId=gg] Error while fetching metadata with correlation id 174 : {not_exist=UNKNOWN_TOPIC_OR_PARTITION}
如何检测和处理此问题?我尝试了errorHandler,但它没有被调用:

    @KafkaListener(topics = "not_exist", groupId = "gg", errorHandler = "onError")
    public void receive(String m) {
        log.info("Rcd: " + m);
    }

...

    @Bean
    public KafkaListenerErrorHandler onError() {
        return new KafkaListenerErrorHandler() {
            @Override
            public Object handleError(Message<?> message, ListenerExecutionFailedException e) {
                log.error("handleError Error: {} message: {}", e.toString(), message);
                return message;
            }
        };
    }
@KafkaListener(topics=“not_exist”,groupId=“gg”,errorHandler=“onError”)
公共无效接收(字符串m){
日志信息(“Rcd:+m”);
}
...
@豆子
公共KafkaListenerErrorHandler onError(){
返回新的KafkaListenerErrorHandler(){
@凌驾
公共对象句柄错误(消息消息,ListenerExecutionFailedException e){
log.error(“handleError:{}消息:{}”,例如toString(),消息);
返回消息;
}
};
}

我想你可以在org/springframework/kafka/listener/KafkaListenerErrorHandler.java中找到答案

*@return除非带注释的方法具有{@code@SendTo}注释,否则将忽略返回值。