Kafka查询避免OOM

Kafka查询避免OOM,第1张

Kafka查询避免OOM

(1)consumer#ThreadLocal中 在拦截器中最后关闭Consumer close

        if(CurrentConsumerHolder.getCurrentConsumer()!=null){
            KafkaConsumer consumer =             
                    CurrentConsumerHolder.getCurrentConsumer();
            consumer.unsubscribe();
            consumer.close(Duration.ofMillis(0));
        }
        CurrentConsumerHolder.clear();

(2)consumer存放到ThreadLocal查询复用

    public KafkaConsumer getQueryConsumer() {
        if (CurrentConsumerHolder.getCurrentConsumer() == null) {
            CurrentConsumerHolder.setCurrentConsumer(
                    new KafkaConsumer<>(this.getKafkaProperties()));
        }
        return CurrentConsumerHolder.getCurrentConsumer();
    }

consumer#poll对象 存放到Redis中增加缓存

提高堆内存

接口限流

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5704911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存