以下是优化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 | 避免处理超时 |
注意:所有参数需在测试环境验证后逐步调整,优先通过监控数据驱动优化,避免盲目修改导致性能波动。