Kafka配置参数完整说明
1. 基础配置
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
broker.id | broker的唯一标识符 | 每个节点唯一的整数 | 1 |
delete.topic.enable | 是否允许删除topic | true | true |
listeners | broker监听地址 | SASL_PLAINTEXT://host:9092 | SASL_PLAINTEXT://172.24.77.15:9092 |
advertised.listeners | 对外发布的监听地址 | SASL_PLAINTEXT://public_ip:9092 | SASL_PLAINTEXT://172.24.77.15:9092 |
log.dirs | 日志数据目录 | /data/kafka/data | /data/kafka/data |
zookeeper.connect | ZK连接字符串 | host1:2181,host2:2181,host3:2181 | 172.24.77.10:2181,172.24.77.11:2181,172.24.77.12:2181 |
2. 安全配置
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
security.protocol | 安全协议 | SASL_PLAINTEXT | SASL_PLAINTEXT |
sasl.mechanism.inter.broker.protocol | broker间通信认证机制 | SCRAM-SHA-256 | SCRAM-SHA-256 |
sasl.enabled.mechanisms | 启用的认证机制 | SCRAM-SHA-256,PLAIN | SCRAM-SHA-256,PLAIN |
allow.everyone.if.no.acl.found | 无ACL时允许所有操作 | false | true(测试环境) |
super.users | 超级用户列表 | User:admin | User:super |
authorizer.class.name | 授权器类名 | kafka.security.auth.SimpleAclAuthorizer | kafka.security.auth.SimpleAclAuthorizer |
3. 网络配置
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
num.network.threads | 网络线程数 | 3-5 | 3 |
num.io.threads | IO线程数 | 8 | 8 |
socket.send.buffer.bytes | 发送缓冲区大小 | 10485760 (10MB) | 102400 (100KB) |
socket.receive.buffer.bytes | 接收缓冲区大小 | 10485760 (10MB) | 102400 (100KB) |
socket.request.max.bytes | 请求最大大小 | 104857600 (100MB) | 104857600 (100MB) |
replica.socket.receive.buffer.bytes | 副本复制接收缓冲区 | 1048576 (1MB) | 65536 (64KB) |
4. 主题和分区配置
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
num.partitions | 默认分区数 | 3 | 3 |
default.replication.factor | 默认副本因子 | 3 | 3 |
min.insync.replicas | 最小同步副本数 | 2 | 2 |
auto.create.topics.enable | 是否自动创建主题 | false | true |
offsets.topic.replication.factor | offsets主题副本因子 | 3 | 3 |
5. 性能调优参数
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
num.replica.fetchers | 副本拉取线程数 | 3 | 3 |
replica.fetch.max.bytes | 副本拉取最大字节数 | 1048576 (1MB) | 1048576 (1MB) |
replica.lag.time.max.ms | 副本最大延迟时间 | 5000 (5秒) | 10000 (10秒) |
replica.fetch.wait.max.ms | 副本拉取最大等待时间 | 1000 (1秒) | 1000 (1秒) |
log.flush.interval.messages | 刷盘消息数阈值 | 10000 | 10000 |
log.flush.interval.ms | 刷盘时间间隔 | 1000 (1秒) | 1000 (1秒) |
6. 日志管理
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
log.retention.hours | 日志保留时间 | 168 (7天) | 168 (7天) |
log.segment.bytes | 日志片段大小 | 1073741824 (1GB) | 1073741824 (1GB) |
log.retention.check.interval.ms | 日志清理检查间隔 | 300000 (5分钟) | 300000 (5分钟) |
log.cleanup.policy | 日志清理策略 | delete | delete |
log.message.timestamp.type | 消息时间戳类型 | LogAppendTime | LogAppendTime |
7. 事务和幂等性配置
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
transaction.state.log.replication.factor | 事务主题副本因子 | 3 | 3 |
transaction.state.log.min.isr | 事务主题最小ISR | 2 | 2 |
unclean.leader.election.enable | 是否允许非ISR副本成为leader | false | false |
8. 其他配置
参数名 | 说明 | 推荐值 | 参考值 |
---|---|---|---|
group.initial.rebalance.delay.ms | 消费组初始重平衡延迟 | 3000 (3秒) | 3000 (3秒) |
broker.rack | broker机架信息 | rack1 | kafka-rac1 |
message.max.bytes | 消息最大大小 | 1000012 (≈1MB) | 1000012 (≈1MB) |
zookeeper.connection.timeout.ms | ZK连接超时时间 | 18000 (18秒) | 18000 (18秒) |
zookeeper.session.timeout.ms | ZK会话超时时间 | 18000 (18秒) | 12000 (12秒) |