导图社区 Kafka
这是一篇关于Kafka的思维导图,Kafka是一个基于发布/订阅模式的消息队列(Message Queue),主要用于大数据实时处理领域。它允许消息的发布者将消息发布到不同的类别(Topic)中,而订阅者则只接收自己感兴趣的消息。
发一些个人学习的积累及自己遇到的面试题,有需要的同学可以参考一下。受个人能力的影响,若有错误欢迎提出来大家讨论。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
Kafka
说说kafka的实现原理?
kafka是一个使用多分区存储的分布式流平台。消息消费采用拉模式。
kafka和推模式还是拉模式?
kafka是拉模式。
kafka offset有几种重置模式?
1.重置到最初位置。
2.重置到最新位置。
3.重置到当前位置。
4.重置到指定位置。
5.按设置的值位移。
6.重置到指定时间的偏移量。
写一个kafka的时序图?
kafka是长连接还是短连接?
kafka可以短连接,可以长连接。短连接就发一条消息就断开连接。长连接长时间保持连接状态,可以发送多条消息。
kafka怎么把数据同步到副本?
kafka会维护一个同步副本列表,只有当消息同步到所有的副本后消息才会提交,消费者才可以消费消息。这保证了消息的高可用。
kafka为什么读数据快?
1.kafka使用0拷贝,减少了拷贝次数。
2.kafka对数据做了压缩,减小了io,只有在使用时才解压。
3.kafka是内核区与用户区共有一个缓冲区,减少了拷贝。
kafka为什么写数据快?
1.kafka是顺序存储,这减少了磁盘寻道时间。
2.kafka不是立马将数据由内核刷新到磁盘,而是达到一定量才刷新,这减少了io。
kafka索引的原理是什么?
偏移量索引文件。用它来建立偏移量到物理位置的映射关系。
kafka的ISR机制知道吗?
In Synch Replicas,消息同步副本。kafka会把消息从领导分区同步到其它所有副本后消息才会被提交。
topic分配partition和partition Replication的算法是什么?
kafka怎么保证消息消费的顺序性?
单个分区可以保证消费的顺序性,多个分区保证不了。
你们消息的确认方式是什么?
手动确认。ack=-1,表示消息同步到所有的副本后才被确认。才会提交到数据库。这时消费者才能消费消息,这保证了kafka的高可用。
kafka哪个特性会让消息丢失?
当ack=0消息发送就确认,此时若消息还没不存到分区就会产生消息丢失。
kafka消息发出后做了哪些事?
将消息发送到主分区,若确认方式是ack=1默认的,消息就会提交,消费者就能收到消息。若ack=-1,那么在主分区收到消息后还会利用isr机制将消息同步到其他副本后消息才会被提交,消费者才能收到消息。
kafka三种消息确认方式
1.acks=0,消息发出就确认,速度快但是可能导致消息丢失。
2.acks=1,当消息发出后,主分区收到消息,消息才会被提交。也是默认的方式。
3.acks=-1,这种方式是消息发出后,主分收到消息,并且将消息同步到所有的节点后消息才会被提交。这种方式消息可靠性很高。但是等待消息确认的时间也很久。
2.kafka是内核区与用户区共有一个缓冲区,减少了拷贝。
3.kafka不是立马将数据由内核刷新到磁盘,而是达到一定量才刷新,这减少了io。
kafka手动提交与自动提交有什么区别?
自动提交即ack=1,这种方式下主分区收到消息就会提交。若主分区宕机会导致消息丢失。手动提交若选择ack=-1,在多个副本分区收到消息会才会提交,这保证了消息的高可用。
另外若消息的提交方式由自动改为手动,但又没有手动确认消息那么不仅会重复收到消息也会导致消息丢失。
1.ack=0,消息发出就确认,速度快但是可能导致消息丢失。
2.ack=1,当消息发出后,主分区收到消息,消息才会被提交。也是默认的方式。
3.ack=-1,这种方式是消息发出后,主分分收妻消息,并且将消息同步到所有的节点后消息才会被提交。这种方式消息可靠性很高。但是等待消息确认的时间也很久。
kafka用的哪个版本?
2.3
kafka为什么会用到zookeepr?
1.存元数据据。2.是协调 broker, producer与consumer之间的关系。
知识点
kafka相同的消费者群组中有一个用户能收到消息
消息不确认任然能收到消息。但不确认就不会提交偏移量,就会重复收到消息。
偏移量