概述
(1)consumer#ThreadLocal中 在拦截器中最后关闭Consumer close
if(CurrentConsumerHolder.getCurrentConsumer()!=null){
KafkaConsumer<String, String> consumer =
CurrentConsumerHolder.getCurrentConsumer();
consumer.unsubscribe();
consumer.close(Duration.ofMillis(0));
}
CurrentConsumerHolder.clear();
(2)consumer存放到ThreadLocal查询复用
public KafkaConsumer<String, String> getQueryConsumer() {
if (CurrentConsumerHolder.getCurrentConsumer() == null) {
CurrentConsumerHolder.setCurrentConsumer(
new KafkaConsumer<>(this.getKafkaProperties()));
}
return CurrentConsumerHolder.getCurrentConsumer();
}
consumer#poll对象 存放到Redis中增加缓存
提高堆内存
接口限流
最后
以上就是刻苦饼干为你收集整理的Kafka查询避免OOM的全部内容,希望文章能够帮你解决Kafka查询避免OOM所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复