Kafka的主要配置文件是server.properties
,下面是该文件中一些重要配置项的详解:
broker.id:每一个Broker在集群中的唯一标识。即使Broker的IP地址发生了变化,只要broker.id
没变,就不会影响consumers的消息情况。
broker.id=0
delete.topic.enable:是否允许Topic被删除。如果是false,使用管理员工具删除Topic的时候,Kafka并不会处理此操作。
delete.topic.enable=true
auto.create.topics.enable:Kafka服务端是否可以根据请求自动创建Topic,默认是true。建议将此选项设置为false,并在使用Topic之前手动创建。
auto.create.topics.enable=false
listeners:Kafka Server使用的协议、主机名以及端口的格式如下:
listeners=security_protocol://host_name:port
参考示例:
listeners=PLAINTEXT://your.host.name:9092
这是默认配置,使用PLAINTEXT,端口是9092。
num.network.threads:接收请求的线程数。
num.network.threads=3
num.io.threads:执行请求的线程数。
num.io.threads=8
socket.send.buffer.bytes:TCP连接的SO_SNDBUF缓冲区大小,默认102400,单位是字节,如果是-1,就使用操作系统的默认值。
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes:TCP连接的SO_RCVBUF缓冲区大小,默认102400,单位是字节,如果是-1,就使用操作系统的默认值。
socket.receive.buffer.bytes=102400
socket.request.max.bytes:请求的最大长度。
socket.request.max.bytes=104857600
log.dirs:用于存储log文件的目录,可以将多个目录通过逗号分隔,形成一个目录列表。
log.dirs=/tmp/kafka-logs
num.partitions:每个Topic默认的partition数量,默认值是1。
num.partitions=1
num.recovery.threads.per.data.dir:用来恢复log文件以及关闭时将log数据刷新到磁盘的线程数量,每个目录对应num.recovery.threads.per.data.dir
个线程。
num.recovery.threads.per.data.dir=1
log.flush.interval.messages:每隔多少个消息触发一次flush操作,将内存中的消息刷新到硬盘上。
log.flush.interval.messages=10000
log.flush.interval.ms:每隔多少毫秒触发一次flush操作,将内存中的消息刷新到硬盘上。
log.flush.interval.ms=1000
log.retention.hours:上面这两个配置是全局的,可以在Topic中重新设置,并覆盖这两个配置。注意:下面有两种配置,一种是基于时间的策略,另一种是基于日志文件大小的策略,两种策略同时配置的话,只要满足其中一种策略,则触发Log删除的操作。删除操作总是先删除最旧的日志。
log.retention.hours=168
log.retention.bytes:当剩余空间低于log.retention.bytes
字节,则开始删除log。
log.retention.bytes=1073741824
log.segment.bytes:segment日志文件大小的上限值。当超过这个值时,会创建新的segment文件。
log.segment.bytes=1073741824
以上就是Debian上Kafka的主要配置文件server.properties
中一些重要配置项的详解,希望对您有所帮助。