Kafka(三)性能优化参数配置

Kafka(三)性能优化参数配置

1.1 Kafka副本分配策略

replication
Kafka 采用分区机制对数据进行管理和存储,每个 topic 可以有多个分区,每个分区可以有多个副本(replication)
应根据业务需求合理配置副本,一般建议设置至少2个副本以保证高可用性

1.2 Kafka数据备份与恢复

Kafka 采用基于日志文件的存储方式,每个 Broker 节点上都有副本数据的本地备份
在数据备份方面,可以通过配置 Kafka 的数据保留策略和数据分区调整策略来保证数据的持久性和安全性;
在数据恢复方面,可以通过查找备份数据并进行相应的分区副本替换来恢复数据

1.3 参数配置优化
服务端:
参数名 默认参数值 位置 优化场景 说明
num.network.threads 3 服务端 低延迟
num.io.threads 8 服务端 低延迟
socket.send.buffer.bytes 102400(100K) 服务端 高吞吐
socket.receive.buffer.bytes 65536(64K) 服务端 高吞吐
生产端:
参数名 默认参数值 位置 优化场景 说明
max.in.flight.requests.per.connection 5 生产端 幂等
buffer.memory 33554432(32M) 生产端 高吞吐
batch.size 16384(16K) 生产端 提高性能
linger.ms 0 生产端 提高性能
消费端:
参数名 默认参数值 位置 优化场景 说明
fetch.min.bytes 1 消费端 提高性能 网络交互次数
max.poll.records 500 消费端 批量处理 控制批量获取消息数量
fetch.max.bytes 57671680 (55M) 消费端 批量处理 控制批量获取消息字节大小