春ブーツカフカはapplication.propertiesにackOnErrorを設定しました

Sviatlana:

セットプロパティackOnErrorへの道がある= falseを使って春のブーツは、次のような他のリスナーのプロパティなどのファイルをapplication.properties:

spring.kafka.listener.ack-mode
spring.kafka.listener.ack-count
spring.kafka.listener.ack-time
spring.kafka.listener.poll-timeout

それが不可能な場合は、どのように私はコンバイン猫:+ Javaの設定ファイルのプロパティ?私はこのようなJava-configにすべてのカフカのプロパティを設定する必要はありません。

 @Bean
    public Map<String, Object> consumerConfigs() {
        Map<String, Object> props = new HashMap<>();
        ......
        props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
        props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, JsonDeserializer.class);
        return props;
    }

私は、プロパティackOnErrorを上書きしたいです。前もって感謝します。

ゲイリー・ラッセル:

これは、プロパティとして利用できないのですが、あなたはブーツのコンテナ工場をオーバーライドすることができ@Bean、次のように...

@Bean
ConcurrentKafkaListenerContainerFactory<?, ?> kafkaListenerContainerFactory(
        ConcurrentKafkaListenerContainerFactoryConfigurer configurer,
        ConsumerFactory<Object, Object> kafkaConsumerFactory) {

    ConcurrentKafkaListenerContainerFactory<Object, Object> factory = new ConcurrentKafkaListenerContainerFactory<>();
    configurer.configure(factory, kafkaConsumerFactory);
    factory.getContainerProperties().setAckOnError(false);
    return factory;
}

これは、他のすべてのブートプロパティを適用します。

あなたも(と例えばコンテナを停止しない限り、しかし、この設定は非常に有用性を持っていませんContainerStoppingErrorHandler)。

This is because the next successful record will have its offset committed anyway, which is beyond the offset of the failed record.

That said, in 2.3, it will be false by default.

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=235775&siteId=1