Zookeeper存储的Kafka的信息

  1. 查看zookeeper中的kafka节点所存储的信息
    启动Zookeeper客户端
[atguigu@hadoop104 zookeeper-3.5.7]$ bin/zkCli.sh 

通过ls命令列出kafka节点内容

[zk: localhost:2181(CONNECTED) 2] ls /kafka
  1. zookeeper 中存储的kafka信息
    在这里插入图片描述

Kafka Broker总体工作流程

  1. Kafka Broker工作流程图示
    在这里插入图片描述

  2. 案例实操:
    1)案例内容:模拟kafka上下线,查看zookeeper中数据变化
    2)查看kafka节点相关信息:① 查看zookeeper上的kafka集群节点信息
    [zk: localhost:2181(CONNECTED) 2] ls /kafka/brokers/ids
    [102, 103, 104]
    ② 查看当前kafka集群节点中的controller信息
    [zk: localhost:2181(CONNECTED) 2] get /kafka/controller
    {“version”:1,“brokerid”:103,“timestamp”:“1637292471777”}
    ③ 查看kafka中的first主题的0号分区的状态
    [zk: localhost:2181(CONNECTED) 2] get /kafka/brokers/topics/first/partitions/0/state
    {“controller_epoch”:24,“leader”:102,“version”:1,“leader_epoch”:18,“isr”:[102,103,104]}
    3)模拟kafka下线:停止hadoop103上的kafka
    [atguigu@hadoop103 kafka]$ bin/kafka-server-stop.sh
    4)查看kafka相关节点信息
    ① 查看zookeeper上的kafka集群节点信息
    [zk: localhost:2181(CONNECTED) 2] ls /kafka/brokers/ids
    [102, 104]
    ② 查看当前kafka集群节点中的controller信息
    [zk: localhost:2181(CONNECTED) 2] ls /kafka/controller
    {“version”:1,“brokerid”:102,“timestamp”:“1637292471777”}
    ③ 查看kafka中的first主题的0号分区的状态
    [zk: localhost:2181(CONNECTED) 2] get /kafka/brokers/topics/partitions/0/state
    {“controller_epoch”:24,“leader”:102,“version”:1,“leader_epoch”:18,“isr”:[102,104]}
    5)重新启动hadoop103上的kafka服务
    [atguigu@hadoop103 kafka]$ bin/kafka-server-stop.sh
    6)再次查看上述节点,观察区别变化

Broker重要参数

参数名称描述
replica.lag.time.max.msISR中的Follower超过该事件阈值(默认30s)未向Leader发送同步数据,则该Follower将被踢出ISR。
auto.leader.rebalance.enable默认是true。 自动Leader Partition 平衡。
leader.imbalance.per.broker.percentage默认是10%。每个broker允许的不平衡的leader的比率。如果每个broker超过了这个值,控制器会触发leader的平衡。
leader.imbalance.check.interval.seconds默认值300秒。检查leader负载是否平衡的间隔时间。
log.segment.bytesKafka中log日志是分成一块块存储的,此配置是指log日志划分 成块的大小,默认值1G。
log.index.interval.bytes默认4kb,kafka里面每当写入了4kb大小的日志(.log),然后就往index文件里面记录一个索引。
log.retention.hoursKafka中数据保存的时间,默认7天。
log.retention.minutesKafka中数据保存的时间,分钟级别,默认关闭。
log.retention.msKafka中数据保存的时间,毫秒级别,默认关闭。(优先级最高)
log.retention.check.interval.ms检查数据是否保存超时的间隔,默认是5分钟。
log.retention.bytes默认等于-1,表示无穷大。超过设置的所有日志总大小,删除最早的segment。
log.cleanup.policy默认是delete,表示所有数据启用删除策略;如果设置值为compact,表示所有数据启用压缩策略。
num.io.threads默认是8。负责写磁盘的线程数。整个参数值要占总核数的50%。
num.replica.fetchers副本拉取线程数,这个参数占总核数的50%的1/3
num.network.threads默认是3。数据传输线程数,这个参数占总核数的50%的2/3 。
log.flush.interval.messages强制页缓存刷写到磁盘的条数,默认是Max(long(9223372036854775807)。一般交给系统管理。
log.flush.interval.ms每隔多久,刷数据到磁盘,默认是null。一般不建议修改,交给系统自己管理。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐