kafka常见疑难问题

 2023-09-11 阅读 16 评论 0

摘要:1.副本同步线程挂掉,出现副本缺失;重启broker服务,拉起同步线程; 2.Java NIO java.lang.OutOfMemoryError: Direct buffer memory ; Kafka java.lang.OutOfMemoryError: Direct buffer memory总结如下: 1.目前我们Kafka生产集群未配置XX:M

1.副本同步线程挂掉,出现副本缺失;重启broker服务,拉起同步线程;

2.Java NIO java.lang.OutOfMemoryError: Direct buffer memory ;

Kafka java.lang.OutOfMemoryError: Direct buffer memory总结如下:

1.目前我们Kafka生产集群未配置XX:MaxDirectMemorySize参数,流量突增时容易产生java.lang.OutOfMemoryError: Direct buffer memory;
2.通过代码验证,XX:MaxDirectMemorySize参数在未配置情况下,默认与 -Xmx 参数值一样;
3.ByteBuffer.allocateDirect(size)分配内存的方式,在超过XX:MaxDirectMemorySize参数设置的阈值时,将抛出异常:java.lang.OutOfMemoryError: Direct buffer memory,这就是我们Kafka生产集群用的Java nio的分配方式;
4.如果是直接用Unsafe类的allocateMemory(size)方法,那分配内存将不受XX:MaxDirectMemorySize参数控制,也不会抛出java.lang.OutOfMemoryError: Direct buffer memory异常;结论:把XX:MaxDirectMemorySize参数适当调大应该可以解决Kafka集群java.lang.OutOfMemoryError: Direct buffer memory内存溢出问题。

3.客户端消费到消息后,处理时间太长,导致消费组内rebalance,调大 max.poll.interval.ms 或减少max.poll.records.

4.由于服务端负载变高,客户端生产消息长时间无法发送出去,导致超时Caused by: org.apache.kafka.common.errors.TimeoutException: Expiring 85 record(s) for realtime_ads_delivery_filter-4:120002 ms has passed since batch creation;

5.打印提示FETCH_SESSION_ID_NOT_FOUND,这个属于session过期,会清理过期session,创建新的session;

6.部分场景下,某些消费者因topic分区leader是非首选leader导致消费不了;

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/47936.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息