kafka 配置
# Kafka 配置指南
本文介绍 Kafka 的主要配置参数及其使用说明。以下配置基于 server.properties 文件,这是 Kafka broker 的主要配置文件。
# 核心配置参数
# 基础配置
# Broker 唯一标识符
broker.id=5
# 监听端口
port=9001
# 对外发布的监听地址
advertised.listeners=PLAINTEXT://test-node001:9001
# 主题相关配置
auto.create.topics.enable=false
num.partitions=10
default.replication.factor=3
# 数据存储目录
log.dirs=/data/kafka9001
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 网络配置
# 网络线程数
num.network.threads=3
# IO线程数
num.io.threads=8
# 消息大小限制(约 1GB)
message.max.bytes=1000012000
# Socket 配置
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 数据保留配置
# 数据保留时间(小时)
log.retention.hours=48
# 单个日志段大小(1GB)
log.segment.bytes=1073741824
# 检查间隔
log.retention.check.interval.ms=300000
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 复制和一致性配置
# 最小同步副本数
min.insync.replicas=1
# 副本数
default.replication.factor=3
# 副本拉取线程数
num.replica.fetchers=2
# 禁用不干净的领导者选举
unclean.leader.election.enable=false
# 禁用自动领导者平衡
auto.leader.rebalance.enable=false
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# ZooKeeper 配置
# ZooKeeper 连接字符串
zookeeper.connect=192.168.11.34:2181,192.168.11.35:2181,192.168.11.36:2181,192.168.11.41:2181,192.168.11.42:2181
# ZooKeeper 连接超时时间
zookeeper.connection.timeout.ms=6000
1
2
3
4
5
2
3
4
5
# 其他重要配置
# 消费者组初始重平衡延迟
group.initial.rebalance.delay.ms=0
# 启用受控关闭
controlled.shutdown.enable=true
# 请求超时时间
request.timeout.ms=60000
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 重要说明
主机名配置:
- advertised.listeners 中使用的主机名必须在所有客户端的 hosts 文件中正确配置
- 确保所有节点之间可以通过主机名互相访问
存储配置:
- log.dirs 指定的目录必须具有适当的权限
- 建议使用专用的数据盘
性能优化:
- num.network.threads 和 num.io.threads 可根据实际负载调整
- socket 相关参数可根据网络状况调整
可靠性设置:
- min.insync.replicas 和 default.replication.factor 对数据可靠性至关重要
- unclean.leader.election.enable=false 可防止数据丢失
监控建议:
- 定期检查 log.retention.hours 确保符合数据保留需求
- 监控 log.dirs 的磁盘使用情况
# 配置最佳实践
- 根据实际需求调整 message.max.bytes
- 确保 ZooKeeper 集群的高可用性
- 适当配置复制因子以平衡可靠性和性能
- 定期检查和更新配置参数以适应业务增长
上次更新: 4/24/2025