以下是优化CentOS上Kafka配置的核心要点,涵盖参数调整、硬件及系统层面:
num.partitions
:根据业务负载设置,建议每个Broker承载100-200分区,提升并行度。default.replication.factor
:设为3,提高数据可靠性。min.insync.replicas
:设置为2,确保高可用。num.io.threads
:设为CPU核数的2-3倍,优化磁盘写入。num.network.threads
:设为CPU核数,处理网络请求。log.segment.bytes
:调整为2-5GB,减少日志切换开销。buffer.memory
:设为512MB-1GB,缓冲生产者消息。socket.send.buffer.bytes
/socket.receive.buffer.bytes
:设为128KB-1MB,提升网络传输效率。batch.size
:设为64KB-1MB,减少网络请求。linger.ms
:设为5-100ms,允许消息合并。compression.type
:选择LZ4或Snappy,平衡压缩率与CPU开销。acks
:根据场景选择1
(Leader确认)或all
(全副本确认)。fetch.min.bytes
:设为1MB,减少拉取频率。max.poll.records
:设为500-1000,控制单次处理量。group.instance.id
),减少重平衡。vm.swappiness
:设为1,避免内存交换。net.core.rmem_max
/net.core.wmem_max
:增大网络缓冲区(如2MB)。组件 | 参数 | 推荐值 | 说明 |
---|---|---|---|
Broker | num.io.threads |
8-16(CPU核数×2) | 提升磁盘I/O并行度 |
Producer | batch.size |
512KB-1MB | 平衡吞吐与延迟 |
Consumer | max.poll.records |
500-1000 | 避免处理超时 |
注意:所有参数需在测试环境验证后逐步调整,优先通过监控数据驱动优化,避免盲目修改导致性能波动。