kafka入门,Kafka Broker工作流程、Broker重要参数(十一)

Zookeeper 存储的 Kafka 信息

在这里插入图片描述
在zookeeper的服务端存储的Kafka相关信息
1)/kafka/brokers/ids [0,1,2] 记录有哪些服务器
2)/kafka/brokers/topics/first/partitions/0/state 记录谁是leader,有哪些服务器可用
3)/kafka/controller 辅助选举leader

Kafka Broker 总体工作流程

在这里插入图片描述
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,一般不建议修改,交给系统自己管理

猜你喜欢

转载自blog.csdn.net/weixin_43205308/article/details/131451913