【问题标题】:add kafka autoStartUp false in the ConsumerConfig在 ConsumerConfig 中添加 kafka autoStartUp false
【发布时间】:2021-02-17 22:49:05
【问题描述】:

如何在属性 lvl 处手动添加 kafka 属性 autoStartUp false ?我的意思是,例如我可以这样做:

@KafkaListener(autoStartUp = "false")

但我想在自己的 BeanPostProcessor 中的 ConsumerProperties 中执行此操作。例如,我在 ConsumerProperties 中找不到此属性:

Map props = new HashMap();

    props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, this.kafkaConfig.getBootstrapServers());
    props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
    props.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, false);
    //here i need to add autoStartUp to false

【问题讨论】:

    标签: spring-boot spring-kafka


    【解决方案1】:

    autoStartup 与 Apache Kafka 无关。它是原生 Spring 容器特性:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-factory-lifecycle-processor。因此,即使通过您的props 可以实现,这听起来也不合理,而且感觉更像是在使用不会被 Kafka 机制解析的选项来滥用 Apache Kafka 配置。

    您真正需要的是更多地关注autoStartup 选项JavaDocs:

    /**
     * Set to true or false, to override the default setting in the container factory. May
     * be a property placeholder or SpEL expression that evaluates to a {@link Boolean} or
     * a {@link String}, in which case the {@link Boolean#parseBoolean(String)} is used to
     * obtain the value.
     * <p>SpEL {@code #{...}} and property place holders {@code ${...}} are supported.
     * @return true to auto start, false to not auto start.
     * @since 2.2
     */
    String autoStartup() default "";
    

    并在文档中查看更多信息:https://docs.spring.io/spring-kafka/docs/2.6.2/reference/html/#kafka-listener-annotation

    所以,粗略地说,如果你在你的props bean 中添加一个autoStartUp,你可以像这样配置你的@KafkaListener

    @KafkaListener(autoStartUp = "#{props.autoStartUp}")
    

    【讨论】:

    • 谢谢,这是个好主意,但如果我无法访问@KafkaListener?这就是为什么我询问属性或如何用其他方式做到这一点
    • 好吧,否则也可以通过为@KafkaListener 提供的ConcurrentKafkaListenerContainerFactory。但是,如果您也无法访问该文件,则根本无法做到这一点。您可能需要请为您开发该库的团队在@KafkaListener 上授予对这些选项的访问权限。
    猜你喜欢
    • 1970-01-01
    • 2015-11-03
    • 2019-06-10
    • 2019-09-25
    • 2021-08-03
    • 2020-10-16
    • 1970-01-01
    • 2019-01-30
    • 2020-11-27
    相关资源
    最近更新 更多