Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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
Java 有没有办法在出现异常时最大限度地提高Kafka侦听器的重试限制_Java_Spring Boot_Apache Kafka_Spring Kafka - Fatal编程技术网

Java 有没有办法在出现异常时最大限度地提高Kafka侦听器的重试限制

Java 有没有办法在出现异常时最大限度地提高Kafka侦听器的重试限制,java,spring-boot,apache-kafka,spring-kafka,Java,Spring Boot,Apache Kafka,Spring Kafka,我使用的是spring boot应用程序,卡夫卡消费者在其中消费消息并将其保存到Hbase中 如果在读取来自kafka的消息时出现任何异常,则主题为如何在批处理列表的情况下限制重试机制。我使用了下面的卡夫卡配置,但它正在无限期地重试 @Bean public Map<String, Object> consumerConfigs() { Map<String, Object> props = new HashMap<>(); props.put

我使用的是spring boot应用程序,卡夫卡消费者在其中消费消息并将其保存到Hbase中

如果在读取来自kafka的消息时出现任何异常,则主题为如何在批处理列表的情况下限制重试机制。我使用了下面的卡夫卡配置,但它正在无限期地重试

@Bean
public Map<String, Object> consumerConfigs() {
    Map<String, Object> props = new HashMap<>();
    props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, bootStrapServer);
    props.put(ConsumerConfig.GROUP_ID_CONFIG, gropuId);
    props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, ByteArrayDeserializer.class);
    props.put(ConsumerConfig.MAX_POLL_RECORDS_CONFIG, maxPollRecordSize);
    props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
    return props;
}

@Bean
public ConcurrentKafkaListenerContainerFactory<String, byte[]> kafkaListenerContainerFactory() {
        ConcurrentKafkaListenerContainerFactory<String, byte[]> factory = new ConcurrentKafkaListenerContainerFactory<>();
        factory.setConcurrency(1);
        factory.setConsumerFactory(consumerFactory());
        factory.getContainerProperties().setAckOnError(false);
        factory.getContainerProperties().setSyncCommits(true);
        factory.setBatchErrorHandler(new SeekToCurrentBatchErrorHandler());
        factory.setBatchListener(true);
        return factory;
}
@Bean
公共地图使用者配置(){
Map props=newhashmap();
put(ConsumerConfig.BOOTSTRAP\u SERVERS\u CONFIG,bootStrapServer);
props.put(ConsumerConfig.GROUP\u ID\u CONFIG,gropuId);
put(ConsumerConfig.KEY\u反序列化程序\u类\u配置,StringDeserializer.CLASS);
put(ConsumerConfig.VALUE\u反序列化程序\u类\u配置,ByteArrayDeserializer.CLASS);
put(ConsumerConfig.MAX\u POLL\u RECORDS\u CONFIG,maxPollRecordSize);
put(ConsumerConfig.ENABLE\u AUTO\u COMMIT\u CONFIG,false);
返回道具;
}
@豆子
公共ConcurrentKafkaListenerContainerFactory kafkaListenerContainerFactory(){
ConcurrentKafkListenerContainerFactory=新ConcurrentKafkListenerContainerFactory();
工厂设置并发(1);
setConsumerFactory(consumerFactory());
factory.getContainerProperties().setAckoneError(false);
factory.getContainerProperties().setSyncCommits(true);
setBatchErrorHandler(新的SeekToCurrentBatchErrorHandler());
factory.setBatchListener(true);
返回工厂;
}

建议不要使用普通消费者,因为普通卡夫卡消费者没有任何可定义消费者重试最大次数的配置。因此,您需要使用特定的HBase接收器连接器才能将数据从Kafka读取到HBase。请参见此处,它似乎没有重试配置