Skip to content

深入剖析北京贝壳外包技术面试要点

今天分享粉丝最新投稿的北京贝壳外包面经,我把项目相关的都去掉了,其他的问题整理下来感觉不是很难,你觉得呢?换做是你的话你答得出来吗?

面经整理如下图

北京贝壳外包

  1. 自我介绍
  2. 项目拷打

Redis 跟 MySQL 以及 Kafka 之间是什么关系?

Redis 是内存数据结构存储系统,用于快速读写和高并发访问。MySQL 是关系型数据库,用于持久化存储结构化数据。Kafka 是分布式消息队列系统,用于处理大规模消息流和数据分发。

在应用中,MySQL 存主要数据,Redis 加速访问,Kafka 传递消息和解耦组件。例如电商系统中,用户信息在 MySQL,购物车数据在 Redis,订单处理消息通过 Kafka 传递。

Kafka partion的概念

在 Kafka 里,Partion 就是把一个主题的数据分成了好几个部分。 每个 Partion 都是按顺序存消息的,而且这些消息改不了。同一主题的不同 Partion 能放在不同的地方,这样就能让数据处理得更快更平衡。

Partion 有这些用处: 一是存数据,消息按顺序存进去,还给每个消息弄个编号来标明位置。 二是能同时处理,多个 Partion 能让不同的人或者组一起处理,效率高。 三是不容易出错,如果有地方坏了,也就影响那一部分,整个主题的数据不会丢。

Kafka 偏移量

在 Kafka 里边,偏移量就是个数字,专门用来表明消息在分区里处于啥位置。

打个比方,每个消息在分区里都有个独一份的编号,这就是偏移量。消费者读消息的时候,会记住自己读到哪个编号了。下次再读,就知道从哪儿接着来,不会重复读,也不会把消息给漏了。

比如说,偏移量是 5 ,那就说明这是分区里的第 6 条消息(因为偏移量从 0 开始算)。偏移量能保证 Kafka 里消息处理得有顺序,而且不会丢。

比如说有你在线上发现一条慢SQL,你怎么分析它?

使用 explain ,说明:

首先关注“type”这一项。若显示为“ALL”,意味着进行了全表扫描,这通常不是理想情况,需要寻求改进。若显示为“index”或“range”等,则相对较