以下是Kafka配置中影响吞吐量的关键参数,涵盖生产者、消费者和Broker层面:
生产者参数
batch.size:增大批次大小(如64KB~1MB),减少网络请求次数。linger.ms:设置消息等待时间(如50ms),允许更多消息合并,平衡延迟与吞吐。compression.type:启用LZ4/Snappy压缩(压缩率30%~50%),降低网络传输量。buffer.memory:增大缓冲区(如512MB~1GB),防止消息积压阻塞。acks:选择1(Leader确认,平衡吞吐与可靠性)或0(仅发送,高吞吐但低可靠)。消费者参数
fetch.min.bytes:增大单次拉取最小数据量(如1MB),减少请求频率。max.partition.fetch.bytes:调整单分区拉取上限(如5~10MB),匹配高吞吐场景。Broker参数
num.network.threads:增加网络处理线程数(建议与CPU核心数一致)。num.io.threads:设置为磁盘数量的2~3倍,提升磁盘I/O并行度。socket.send/receive.buffer.bytes:增大网络缓冲区(如128KB~1MB),提升传输效率。log.segment.bytes:增大日志分段大小(如2~5GB),减少文件切换开销。num.replica.fetchers:增加副本同步线程数(如4~8),加速数据同步。硬件与系统参数
注:参数调整需结合业务场景测试验证,避免过度优化影响数据可靠性。
参考来源: