kafka面试
kafka为什么那么快
客户端缓冲区(默认32M),写时复制,顺序写文件
kafka架构图
kafka的reblance机制
rebalance就是说如果消费组里的消费者数量有变化或消费的分区数有变化,kafka会重新分配消费者消费分区的关系。比如consumer group中某个消费者挂了,此时会自动把分配给他的分区交给其他的消费者,如果他又重启了,那么又会把一些分区重新交还给他。
注意:rebalance只针对subscribe这种不指定分区消费的情况,如果通过assign这种消费方式指定了分区,kafka不会进行rebanlance。
如下情况可能会触发消费者rebalance
- 消费组里的consumer增加或减少了
- 动态给topic增加了分区
- 消费组订阅了更多的topic
rebalance过程中,消费者无法从kafka消费消息,这对kafka的TPS会有影响,如果kafka集群内节点较多,比如数百个,那重平衡可能会耗时极多,所以应尽量避免在系统高峰期的重平衡发生。
消费者Rebalance分区分配策略:
主要有三种rebalance的策略:range、round-robin、sticky。
Kafka 提供了消费者客户端参数partition.assignment.strategy 来设置消费者与订阅主题之间的分区分配策略。默认情况为range分配策略。
假设一个主题有10个分区(0-9),现在有三个consumer消费:
range策略就是按照分区序号排序,假设 n=分区数/消费者数量 = 3, m=分区数%消费者数量 = 1,那么前 m 个消费者每个分配 n+1 个分区,后面的(消费者数量-m )个消费者每个分配 n 个分区。
比如分区0~3给一个consumer,分区4~6给一个consumer,分区7~9给一个consumer。
round-robin策略就是轮询分配,比如分区0、3、6、9给一个consumer,分区1、4、7给一个consumer,分区2、5、8给一个consumer
sticky策略初始时分配策略与round-robin类似,但是在rebalance的时候,需要保证如下两个原则。
1)分区的分配要尽可能均匀 。
2)分区的分配尽可能与上次分配的保持相同。
当两者发生冲突时,第一个目标优先于第二个目标 。这样可以最大程度维持原来的分区分配的策略。
比如对于第一种range情况的分配,如果第三个consumer挂了,那么重新用sticky策略分配的结果如下:
consumer1除了原有的0~3,会再分配一个7
consumer2除了原有的4~6,会再分配8和9
Rebalance过程如下
当有消费者加入消费组时,消费者、消费组及组协调器之间会经历以下几个阶段。
第一阶段:选择组协调器。consumer消费的offset要提交到__consumer_offsets的哪个分区,这个分区leader对应的broker就是这个consumer group的coordinator
第二阶段:加入消费组JOIN GROUP
第三阶段( SYNC GR·OUP)。consumer leader通过给GroupCoordinator发送SyncGroupRequest,接着GroupCoordinator就把分区方案下发给各个consumer,他们会根据指定分区的leader broker进行网络连接以及消息消费。
kafka消息发送过程
拦截器-》序列化器-》分区器(发送到哪个partition)
kafka高水位HW和LEO
高水位:所有已经同步到副本的offset,表示该offset之前的消息都能被消费
LEO: 日志消息最后的偏移量
HW两个作用:
消费进度管理
数据的可靠性
ISR列表维护
某个Follow的LEO落后了leader 10秒,会被从ISR列表中移除。
kafka配置文件
修改配置文件config/server.properties:
broker.id属性在kafka集群中必须要是唯一
broker.id=0
kafka部署的机器ip和提供服务的端口号
listeners=PLAINTEXT://192.168.65.60:9092
kafka的消息存储文件
log.dir=/usr/local/data/kafka-logs
kafka连接zookeeper的地址
zookeeper.connect=192.168.65.60:2181
看的我热血沸腾啊https://www.jiwenlaw.com/
看的我热血沸腾啊https://www.ea55.com/
看的我热血沸腾啊www.jiwenlaw.com
哈哈哈,写的太好了https://www.cscnn.com/
真好呢
真棒!
《铁甲战神》动作片高清在线免费观看:https://www.jgz518.com/xingkong/35972.html
《治外法权》动作片高清在线免费观看:https://www.jgz518.com/xingkong/75874.html