在CentOS上实现Kafka高并发可从硬件、操作系统、Kafka配置及监控等方面优化,具体如下:
硬件优化
操作系统优化
vm.swappiness=1
,减少内存交换。ulimit -n 100000+
,支持高并发连接。noatime
选项,减少文件访问开销。Kafka Broker配置
num.partitions
(建议每个Broker承载100~200分区),提升并行处理能力。default.replication.factor=3
,保障数据可靠性。num.network.threads
设置为CPU核数+1,处理网络请求。num.io.threads
设置为磁盘数量的2~3倍,充分利用磁盘I/O。log.segment.bytes=2GB
,减少日志切换频率。log.flush.interval.messages
和log.flush.interval.ms
,平衡性能与数据持久化。socket.send.buffer.bytes
和socket.receive.buffer.bytes
(如1MB),提升传输效率。生产者和消费者优化
batch.size=64KB~1MB
,批量发送减少网络开销。linger.ms=10~50ms
,允许消息合并,提升吞吐量。compression.type=lz4
),减少传输数据量。fetch.min.bytes=1MB
,增大单次拉取数据量。max.poll.records=500~1000
,提高批量消费效率。监控与调优
注意:修改配置前需在测试环境验证,优先通过增加分区数和优化线程数提升并发,避免过度调优导致稳定性问题。