使用springboot为每个主题设置kafka消费者的轮询率

问题描述

是否可以在SpringBoot上为每个kafka主题的消费者设置不同的投票率?我希望有一个主题以更长的时间间隔(例如5分钟)进行轮询。我希望使用它来重试来自kafka的消息失败。

示例实现将大有帮助。

解决方法

从2.3版开始,侦听器容器具有一个新属性idleBetweenPolls。容器将确保两次轮询之间的时间不大于max.poll.interval.ms - 5000

您可以使用容器定制程序bean为特定消费者设置它...

@Component
class Customizer {

    public Customizer(ConcurrentKafkaListenerContainerFactory<?,?> factory,DefaultKafkaProducerFactory<?,?> pf) {
        factory.setContainerCustomizer(container -> {
            if (container.getContainerProperties().getGroupId().equals("slowGroup")) {
                // or you can use the topic(s)
                container.getContainerProperties().setIdleBetweenPolls(60_000);
            }
        });
    }

}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...