一、broker主要配置
1.broker自身属性的配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
broker.id | broker在集群中的标识 | 整型 | -1 | 1 |
listeners | 监听的服务地址(多个用,隔开) | String | null | PLAINTEXT://myhost:9092 |
2.连接的zookeeper相关配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
zookeeper.connect | 连接的zookeeper地址(多个地址用,隔开) | String | null | localhost:2181 |
zookeeper.connection.timeout.ms | 连接zookeeper超时时间(毫秒) | int | null | 3000 |
3.日志处理相关配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
log.dirs | 日志存放目录(有多个目录分布时使用,隔开) | String | null | /tmp/kafka-logs |
log.dir | 日志存放目录(当log.dirs为null时) | String | /tmp/kafka-logs | /tmp/kafka-logs |
更多配置请参考官方文档:http://kafka.apache.org/documentation/#configuration
二、producer主要配置
1.连接配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
bootstrap.servers | 连接的broker地址 | String | null | localhost:9092 |
2.消息相关配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
buffer.memory | 消息缓冲区大小 | long | 33554432 | 33554432 |
key.serializer | 指定消息的key的序列化类(需要实现Serializer接口) | class | null | org.apache.kafka.common.serialization.StringSerializer |
value.serializer | 指定消息内容的序列化类(需要实现Serializer接口) | class | null | org.apache.kafka.common.serialization.StringSerializer |
delivery.timeout.ms | 发送消息上报成功或失败的最大时间 | int | 120000 | 120000 |
batch.size | 批量发送的最大容量 | int | 16384 | 16384 |
linger.ms | 生产者将请求传输之间到达的任何记录组合到一个批处理请求中的时间 | int | 0 | 0 |
acks | 生产者要求领导者在考虑完成请求之前收到的确认数量 | string | 1 | 1 |
注:acks配置的可选值:
- 0:表示producer无需等待leader的确认;
- 1:代表需要leader确认写入它的本地log并立即确认;
- -1(all):代表所有的备份都完成后确认
3.事务消息相关配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
transactional.id | 事务ID(当有多个生产者时,标识哪个生产者的事务,可用于消息幂等) | String | null | order:4578457845 |
transaction.timeout.ms | 事务超时时间 | long | null | 100000 |
三、consumer主要配置
1.连接配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
bootstrap.servers | 连接的broker地址 | String | null | localhost:9092 |
2.消费者本身配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
group.id | 消费者组的ID | String | null | user-group |
client.id | 消费者ID | String | null | appName |
3.消息配置
配置项 | 作用 | 类型 | 默认值 | 示例 |
auto.offset.reset | 当没有初始偏移量或当前偏移量不存在时设置消费的起始点(earliest、latest、none三个值可选择) | String | earliest | /earliest |
enable.auto.commit | 是否后台自动提交偏移量 | Boolean | true | true |
auto.commit.interval.ms | 后台自动提交消费偏移量(后台定时提交)的间隔时间 | int | 5000 | 5000 |
key.deserializer | 指定消息的key的反序列化类(需要实现Deserializer接口) | class | null | org.apache.kafka.common.serialization.StringDeserializer |
value.deserializer | 指定消息内容的反序列化类(需要实现Deserializer接口) | class | null | org.apache.kafka.common.serialization.StringDeserializer |
一张图来概括kafka配置参数