狂补的Kafka知识点跟面试题,只求面试京东不会再败在Kafka上
kafak知识点整理
这个是之前整理的一套283页的Java核心知识点pdf文档里面的一小部分,又重新刷了一遍,巩固下自己的Java知识,这个pdf可以分享给大家关注我的供种号 Java周某人 即可免费领取
下面是面试题,看面试题不仅仅是为了可以顺利的通过面试,我们也可以在刷面试题之中查漏补缺,看到自己的一些问题,以及需要巩固学习的地方
1. 什么是kafka
Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布式,可划分的,冗余备份的持久性的日志服务,它主要用于处理流式数据。
2. 为什么要使用 kafka,为什么要使用消息队列
- 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafka中,下游服务就可以按照自己的节奏进行慢慢处理。
- 解耦和扩展性:项目开始的时候,并不能确定具体需求。消息队列可以作为一个接口层,解耦重要的业务流程。只需要遵守约定,针对数据编程即可获取扩展能力。
- 冗余:可以采用一对多的方式,一个生产者发布消息,可以被多个订阅topic的服务消费到,供多个毫无关联的业务使用。
- 健壮性:消息队列可以堆积请求,所以消费端业务即使短时间死掉,也不会影响主要业务的正常进行。
- 异步通信:很多时候,用户不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。
3. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么
- ISR:In-Sync Replicas 副本同步队列
- AR:Assigned Replicas 所有副本
ISR是由leader维护,follower从leader同步数