【问题标题】:Setting authorizationExceptionRetryInterval for Spring Kafka为 Spring Kafka 设置 authorizationExceptionRetryInterval
【发布时间】:2020-02-04 09:17:33
【问题描述】:

任何人都知道如何设置新属性:authorizationExceptionRetryInterval,而无需手动创建 ConcurrentKafkaListenerContainerFactory。

【问题讨论】:

    标签: spring-boot spring-kafka


    【解决方案1】:

    我想说...

    @Component
    class ContainerFactoryCustomizer {
    
        ContainerFactoryCustomizer(AbstractKafkaListenerContainerFactory<?, ?, ?> factory) {
            factory.setContainerCustomizer(
                    container -> container.getContainerProperties()
                            .setAuthorizationExceptionRetryInterval(Duration.ofSeconds(10L)));
        }
    
    }
    

    但这不起作用,due to a bug (the container customizer is not set up)

    这是一个解决方法:

    @SpringBootApplication
    public class So60054097Application {
    
        public static void main(String[] args) {
            SpringApplication.run(So60054097Application.class, args);
        }
    
        @KafkaListener(id = "so60054097", topics = "so60054097", autoStartup = "false")
        public void listen(String in) {
            System.out.println(in);
        }
    
        @Bean
        public NewTopic topic() {
            return TopicBuilder.name("so60054097").partitions(1).replicas(1).build();
        }
    
    
        @Bean
        public ApplicationRunner runner(KafkaListenerEndpointRegistry registry) {
            return args -> {
                MessageListenerContainer container = registry.getListenerContainer("so60054097");
                container.getContainerProperties()
                        .setAuthorizationExceptionRetryInterval(Duration.ofSeconds(10L));
                container.start();
            };
        }
    }
    
    

    (将autoStartup设置为false;修复属性并启动容器)。

    【讨论】:

    • 太好了,谢谢!可能会等待问题 1376 的修复
    猜你喜欢
    • 2021-09-28
    • 1970-01-01
    • 2020-05-19
    • 2018-09-04
    • 2018-12-14
    • 1970-01-01
    • 2017-11-24
    • 2020-11-16
    • 2021-03-15
    相关资源
    最近更新 更多