最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了。
额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ(
ActiveMQ/RabbitMQ/RocketMQ)+Kafka等的纯手绘知识体系图、面试以及相关的学习笔记。
为了更好的梳理相关知识,咱们先看纯手绘知识体系图
1.1 Kafka知识体系大纲
Kafka知识体系大纲
由于我手绘这些知识体系大纲是用的xmind软件,无法上传,所以都以截图的形式展示,细节处不清楚(毕竟图片形式有限)。
1.2 RabbitMQ知识体系大纲
RabbitMQ知识体系大纲
1.3 RocketMQ知识体系大纲
RocketMQ知识体系大纲
看完知识大纲,该刷面试了
2.1 刷刷Kafka面试
1. Kafka的用途有哪些?使用场景如何?
2. Kafka中的ISR、AR又代表什么?ISR的伸缩又指什么
3. Kafka中的HW、LEO、LSO、LW等分别代表什么?
4. Kafka中是怎么体现消息顺序性的?
5. Kafka中的分区器、序列化器、拦截器是否了解?它们之间的处理顺序是什么?
6. Kafka生产者客户端的整体结构是什么样子的?
7. Kafka生产者客户端中使用了几个线程来处理?分别是什么?
8. Kafka的旧版Scala的消费者客户端的设计有什么缺陷?
9. “消费组中的消费者个数如果超过topic的分区,那么就会有消费者消费不到数据”这句话是否正确?如果正确,那么有没有什么hack的手段?
10. 有哪些情形会造成重复消费?
11. 哪些情景下会造成消息漏消费?
12. KafkaConsumer是非线程安全的,那么怎么样实现多线程消费?
13. 简述消费者与消费组之间的关系
14. 当你使用kafka-topics.sh创建(删除)了一个topic之后,Kafka背后会执行什么逻辑?
15. topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?
16. topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?
17. 创建topic时如何选择合适的分区数?
18. Kafka目前有哪些内部topic,它们都有什么特征&