解决Kafka消息堆积问题可从生产端、消费端、集群配置及硬件资源等方面入手,具体方法如下:
生产端优化
batch.size(如1MB)和linger.ms(如100ms)控制消息批量发送,避免瞬时流量过高。compression.type=gzip)减少网络开销,异步处理非关键逻辑以提升发送效率。消费端优化
max.poll.records)提升消费速度。enable.auto.commit=true)或手动提交,减少提交开销。集群配置优化
kafka-topics.sh --alter),提升并行处理能力。default.replication.factor),避免因副本同步延迟导致消费阻塞。num.io.threads(建议设置为CPU核心数的50%)和log.retention.hours(如72小时)控制日志保留时间。compression.type)减少磁盘占用。硬件与网络优化
tcp_nodelay)降低延迟。监控与维护
kafka-delete-records.sh)或调整日志保留策略,避免磁盘占满。参考来源: