Zookeeper 存储的 Kafka 信息

kafka在broker节点存储的信息_数据


在zookeeper的服务端存储的Kafka相关信息

1)/kafka/brokers/ids [0,1,2] 记录有哪些服务器

2)/kafka/brokers/topics/first/partitions/0/state 记录谁是leader,有哪些服务器可用

3)/kafka/controller 辅助选举leader

Kafka Broker 总体工作流程

kafka在broker节点存储的信息_kafka在broker节点存储的信息_02


1)broker启动后在zk中注册

2)controller谁先注册,谁说了算

3)由选举出来的Controller监听brokes节点变化

4)Controller决定Leader选举

5)controller将节点信息上传到ZK

6) 其他controller从zk同步相关信息

7)假设broker中leader挂了

8)controller监听到节点变化

9)获取ISR

10) 选举新的leader(选举规则:在ISR中存活为前提,按照AR中排在前面的优先)

11)更新leader及ISR

4.1.3 Broker重要参数

参数名称

描述

replica.lag.time.max.ms

ISR中,如果Follower长时间未向Leader发送通信或同步信息,则该Follower将剔除ISR。该事件阈值,默认30s。

auto.leader.rebalance.enable

默认是true,自动Leader Partitioner平衡

leader.imbalance.per.broker.percentage

默认是10%,每个broker允许的不平衡的leader的比率,如果每个broler超过了这个值,控制器会触发leader平衡

leader.imbalance.check.interval.seconds

默认是300秒,检查leader负载是否平衡的间隔时间

log.segment.bytes

Kafka中log日志是分成一块块存储的,此配置之是指log日志划分成块的大小,默认值1G

log.index.interval.bytes

默认4KB,kafka里面每当写入了4KB大小的日志(.log),然后就往index文件里面记录一个索引

log.retention.hours

kafka中数据保存时间,默认七天

log.retention.minutes

kafka中数据保存时间,分钟级别,默认关闭

log.retention.ms

kafka中数据保存的时间,毫秒级别,默认关闭

log.retention.check.interval.ms

检查数据是否保存超时的间隔,默认是5分钟

log.retention.bytes

超过设置的索引日志总大小,删除最早的segment

log.cleanup.policy

默认delete,表示所有数据启用删除策略,如果设置值为compact,表示所有数据启用压缩策略

num.io.threads

默认是8,负载写磁盘的线程数,真个参数值要占总核数的50%

num.replica.fetchers

副本数拉取线程数,这个参数占总核数的50%

num.network.threads

默认是3,数据传输线程数,这个参数总核数的50%的2/3

log.flush.interval.messages

强制页缓存写道磁盘条数,默认是long的最大值,9223372036854775807,一般不建议修改,交给系统自己管理

log.flush.interval.ms

每隔多久,刷数据到磁盘,默认是null,一般不建议修改,交给系统自己管理