一、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配置参数