深入剖析北京贝壳外包技术面试要点
今天分享粉丝最新投稿的北京贝壳外包面经,我把项目相关的都去掉了,其他的问题整理下来感觉不是很难,你觉得呢?换做是你的话你答得出来吗?
面经整理如下图:
北京贝壳外包
- 自我介绍
- 项目拷打
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”等,则相对较
