$ cat -n config/server.properties
1)全局配置——Broker相关
broker.id=0 // broker ID, 集群模式下该ID必须唯一,且永恒不变。重点:每新启动一个Kafka Server加入Kafka集群,该id必须且只能+1,否则会报错 id不在指定范围之内。
listeners=PLAINTEXT://localhost:9092 // kafka Server端启动端口,如果是同一台机器启动多个Kafka Server,则需要改此端口号。注意:如果这里的localhost不写明IP(PLAINTEXT://:9092),则默认使用内网IP,例:192.168.2.61
zookeeper.connect=localhost:2181 // 连接zookeeper
zookeeper.connection.timeout.ms=6000 // 连接zookeeper超时毫秒数
log.dirs=/tmp/kafka-logs,/directory2,/directory3 // kafka日志数据存储目录,就是存储你的数据。最少使用原则,当一个分区放在多台服务器或者多个路径下时,哪个服务器拥有最少数据分区的优先。所以一个分区会放在同一个路径下面。
num.recovery.threads.per.data.dir=8 // 当启动或关闭kafka时,日志需要启动或者恢复的时候的线程数量,默认1,这个值可以适当改大一点。注意:这里的启动总线程数 = 此值 * log.dirs目录树,比如log.dirs目录配置了4个,此值是8,则总线程数=32
num.network.threads=3 // 服务器用于从网络接收请求并向网络发送响应的线程数
num.io.threads=8 // 服务器用于处理请求的线程数,其中可能包括磁盘I/O
socket.send.buffer.bytes=102400 // 发送缓冲区,默认100KB
socket.receive.buffer.bytes=102400 // 接收数据缓冲区,默认100KB
socket.request.max.bytes=104857600 // 请求最大数量,默认100MB
2)主题相关——Topic
num.partitions=1 // 默认创建分区数量,注意:新建Topic时的分区数量必须大于此值!分区数评估方法:根据每秒的写入和读取的数据量,除以消费者个数,得出需要多少个分区。每个分区只有一个Leader首领。
log.retention.hours=168 // 日志数据默认保存时间:168小时,也可以设置成100分钟:log.retention.minutes=100,或10000毫秒:log.retention.ms=10000
注意:在分区文件夹目录下,有个00000000000000000000.log文件,如果size大到一定程度,会新建一个10这样二进制命名的.log文件,例如10101010.log,00000000000000000000.log则停止更新,当旧文件的最后更新时间 + 日志保存时间 = 删除时间,00000000000000000000.log日志就会被删除。以此类推。
log.retention.bytes=1073741824 // 默认1GB,每个分区的最大文件大小。超出这个限制的部分数据会被删除,一般不设置,-1为没有大小限制。
log.segment.bytes=1073741824 // 默认1GB,日志段文件的最大大小。当达到这个大小时,将创建一个新的日志段。旧文件将等待过期时间然后被删除。
log.retention.check.interval.ms=300000 // 默认5分钟,检查一次单个日志的过期状态
Topic 操作参考: 《kafka2.5.0 主题Topic》
end.