文章目录
- Kafka知识点总结
-
- 1、什么是kafka
- 2、kafka的使用场景
- 3、kafka优缺点
- 4、Kafka架构(流程)
- 5、Kafka架构(API)
- 6、Topic内部有哪些组成?
- 7、分区和消费组内的消费者之间的关系有哪些情况?
- 8、分区数、消费者与读取效率之间的关系
- 9、副本数与broker之间的关系
- 10、什么是主/从副本
- 11、主/从复本的作用是什么
- 12、Lsr是什么?
- 13、成产者生产数据到kafka集群,数据到分区的方式
- 14、Consumer消费数据的流程
- 15、Kafka中的数据删除机制是什么?
- 16、Kafka如何保证数据不丢失
- 17、Kafka高性能的原因有哪里?
- 18、Kafka高效查询数据的有哪些原因
- 19、如何从Kafka得到准确的信息(不是重读数据)?
- 20、Kafka的设计是什么样的呢?
- 21、数据传输的事物定义有哪三种?
- 22、Kafka判断一个节点是否还活着有哪些条件?
- 23、Kafka 与传统消息系统之间有哪些区别?
- 24、Kafka创建Topic时将分区放置到不同的Broker的策略是什么?
- 25、Kafka新建的分区会在哪个目录下创建
- 26、partition的数据如何保存到硬盘
- 27、kafka的ack机制
- 28、Kafka的消费者如何消费数据
- 29、如何使kafka集群内的数据是有序的?
- 30、Zookeeper汇总保留了哪些数据?
- 31、kafka consumer 什么情况会触发再平衡reblance?
- 32、描述下kafka consumer 再平衡步骤?
- 33手动提交offset有什么好处?
- 34、为什么kafka中的数据需要定期删除或合并?
Kafka知识点总结
- 1、Kafka生态系统四大角色,生产者(Producer)、kafka集群(Broker)、消费者(Consumer)、zookeeper
- 2、每个消费者都必须属于一个消费组,一个组内的消费者可以多个。
- 3、一个Topic可以有0到多个多个分区(Partition)
- 4、一个分区可以有0到多个segment。
- 5、每个segment可以有由一个log和一个index组成。
- 6、被复制的分区叫做主副本(Leader),复制出来的叫做从副本(Follwer)
- 7、生产者只往主副本写数据,消费者只在主副本拉取数据。
- 8、从副本只做数据备份,不做数据读写。
【红色字体表示隐藏知识点】
- 9、一个分区内的一条数据,只能被一个消费组内的一个消费者消费。
- 10、消费者的最大并发度由topic的分区数量决定
- 11、分区副本的数量必须小于等于broker的数量
- 12、一个topic内的多个分区,每个分区只是所有数据的一部分。所有分区的数据累加到一起是这个topic的全部数据。
- 13、zookeeper中记录了broker的id 、消费者消费数据的offset,消费者与partition的对应关系(ConsumerA—> Partition-0, ConsumerB—> Partition-1)
1、什么是kafka
是一个分布式,分区的,多副本的,多订阅者的消息发布订阅系统。
2、kafka的使用场景
应用耦合、异步处理、限流削峰、消息驱动的系统
3、kafka优缺点
优点:
- 可靠性强(分布式-分区-副本)
- 扩展性强(可伸缩)
- 性能高(数据读写)
- 耐用性强(数据持久化)
- 时效性强。
缺点:
- 由于是批量发送,数据并非真正的实时。
- 仅支持统一分区内消息有序,无法实现全局消息有序;
- 有可能消息重复消费;
- 依赖zookeeper进行元数据管理。
4、Kafka架构(流程)
生产者、kafka集群、消费者、zookeeper
5、Kafka架构(API)
生产者、消费者、StreamAPI、ConnectAPI
6、Topic内部有哪些组成?
每个Topic包含一个或者多个Partition,一个partition当中存在多个segment文件段,每个segment分为两部分,.log文件和.index文件。
7、分区和消费组内的消费者之间的关系有哪些情况?
Partition = 消费任务的并发度=刚刚好,每个任务读取一个partition数据
Partition > 消费任务的并发度=有部分消费任务读取多个分区的数据
Partition < 消费任务的并发度=有部分消费任务空闲(可以创建多于分区的消费者数量)