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) |
消费端 |
批量处理 |
控制批量获取消息字节大小 |