zoukankan      html  css  js  c++  java
  • kafka broker

    在server.properties文件中配置:

    1、broker.id

    kafka集群是由多个节点组成的,每个节点称为一个broker,中文翻译是代理。每个broker都有一个不同的brokerId,由broker.id指定,是一个不小于0的整数,各brokerId必须不同,但不必连续。如果我们想扩展kafka集群,只需引入新节点,分配一个不同的broker.id即可。

    启动kafka集群时,每一个broker都会实例化并启动一个kafkaController,并将该broker的brokerId注册到zooKeeper的相应节点中。集群各broker会根据选举机制选出其中一个broker作为leader,即leader kafkaController。leader kafkaController负责主题的创建与删除、分区和副本的管理等。当leader kafkaController宕机后,其他broker会再次选举出新的leader kafkaController。

    2、log.dir

    broker持久化消息到哪里。broker启动后,在此目录中会有多个文件及目录,文件有cleaner-offset-checkpoint、log-start-offset-checkpoint、recovery-point-offset-checkpoint、replication-offset-checkpoint、meta.properties。创建topic后,假如有副本分到这个broker上,则在log.dir目录中会创建一个此副本对应的目录,目录名格式是{topic}-{partition},例如test-0,从名字就可以看出这是test topic的partition 0的一个副本。partition编号从0开始。test-0目录中有.log、.index、.timeindex、leader-epoch-checkpoint文件。log文件是实际存放消息的文件,称为数据文件。index文件是消息偏移量索引文件,timeindex文件是消息时间戳索引文件。log文件可能会有多个,这表示log分段了。至于什么情况下log会分段,见下面配置解释。每个数据文件的名称是该数据文件的第一条消息的偏移量左补0构成的20位数字字符。因为偏移量从0开始,所以每个分区每个副本的第一个数据文件都是00000000000000000000.log,后续每个数据文件的第一条消息的偏移量是上一个数据文件最后一条消息的偏移量+1。

    3、log.retention.hours

    log文件最小存活时间,默认是168h,即7天。相同作用的还有log.retention.minutes、log.retention.ms。retention是保存的意思。

    4、log.retention.check.interval.ms

    多长时间检查一次是否有log文件要删除。默认是300000ms,即5分钟。所以一个消息的实际存活时间是介于log.retention.hours和(log.retention.hours + log.retention.check.interval.ms)之间的。

    5、log.retention.bytes

    限制单个分区的log文件的最大值,超过这个值,将删除旧的log,以满足log文件不超过这个值。默认是-1,即不限制。实际上这个配置项除了-1,不应该配置成其他值。同retention.bytes。

    6、log.roll.hours

    多少时间会生成一个新的log segment,默认是168h,即7天。相同作用的还有log.roll.ms、segment.ms。

    7、log.segment.bytes

    log segment多大之后会生成一个新的log segment,默认是1073741824,即1G。个人感觉按照时间生成log segment比按照大小生成log segment的策略要好,便于管理。同segment.bytes。

    8、log.flush.interval.messages

    指定broker每收到几个消息就把消息从内存刷到硬盘。默认是9223372036854775807,哈哈,好大。kafka官方不建议使用这个配置,建议使用副本机制和操作系统的后台刷新功能,因为这更高效。这个配置可以根据不同的topic设置不同的值,即在创建topic的时候设置值。同flush.messages。

    9、log.flush.interval.ms

    指定broker每隔多少毫秒就把消息从内存刷到硬盘。默认值同log.flush.interval.messages一样。同log.flush.interval.messages一样,kafka官方不建议使用这个配置。同flush.ms。

    cleaner-offset-checkpoint文件:???

    log-start-offset-checkpoint文件:???

    recovery-point-offset-checkpoint文件:???

    replication-offset-checkpoint文件:???

    leader-epoch-checkpoint文件:???

  • 相关阅读:
    Apache Beam入门及Java SDK开发初体验
    fetch的请求
    Spring Cache 带你飞(一)
    存储技术发展过程
    Redis 高阶数据类型重温
    Redis 基础数据类型重温
    [源码解析] PyTorch 分布式(1)------历史和概述
    [源码解析] PyTorch 如何实现后向传播 (4)---- 具体算法
    [源码解析] Pytorch 如何实现后向传播 (3)---- 引擎动态逻辑
    [源码解析] Pytorch 如何实现后向传播 (2)---- 引擎静态结构
  • 原文地址:https://www.cnblogs.com/koushr/p/10963866.html
Copyright © 2011-2022 走看看