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秒) |