kafka常见配置参数解析
broker.id | broker 的全局唯一编号,不能重复,只能是数字 |
num.network.threads=3 | 处理网络请求的线程数量 |
num.io.threads=8 | 用来处理磁盘 IO 的线程数量 |
socket.send.buffer.bytes=102400 | 发送套接字的缓冲区大小 |
socket.receive.buffer.bytes=102400 | 接收套接字的缓冲区大小 |
socket.request.max.bytes=104857600 | 请求套接字的缓冲区大小 |
num.partitions=1 | topic 在当前 broker 上的分区个数 |
num.recovery.threads.per.data.dir=1 | 用来恢复和清理 data 下数据的线程数量 |
offsets.topic.replication.factor=1 | 每个 topic 创建时的副本数,默认时 1 个副本 |
log.retention.hours=168 | segment 文件保留的最长时间,超时将被删除 |
log.roll.hours | 即使文件没有到达log.segment.bytes,只要文件创建时间到达此属性,就会创建新文件。这个设置也可以有topic层面的设置进行覆盖。默认4*7 |
log.cleanup.policy | log清除策略。默认delete |
log.retention.bytes | 每个topic下每个partition保存数据的总量。注意: 1、这是每个partitions的上限,因此这个数值乘以partitions的个数就是每个topic保存的数据总量。如果log.retention.hours和log.retention.bytes都设置了,则超过了任何一个限制都会造成删除一个段文件。2、这项设置可以由每个topic设置时进行覆盖。 |
log.cleaner.enable | 开启一些清理线程,执行定时清理任务。在kafka 0.9.0之后 log.cleaner.enable 默认是true |
log.segment.bytes=1073741824 | 每个 segment 文件的大小,默认最大 1G |
log.segment.delete.delay.ms | 日志文件被真正删除前的保留时间 |
log.retention.check.interval.ms=300000 | 检查过期数据的时间,默认 5 分钟检查一次是否数据过期 |
log.dirs=/opt/module/kafka/datas | kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔 |
zookeeper.connect | 配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理) |
zookeeper.connection.timeout.ms | 客户端等待和zookeeper建立连接的最大时间。默认6000 |
日志刷新策略
Kafka的日志实际上是开始是在缓存中的,然后根据策略定期一批一批写入到日志文件中去,以提高吞吐率。
log.flush.interval.messages | 消息达到多少条时将数据写入到日志文件 |
log.flush.interval.ms | 当达到该时间时,强制执行一次flush |
log.flush.scheduler.interval.ms | 周期性检查,是否需要将信息flush |