字节抖音电商一面凉经

面试过程:

1.单机的mysql,实现集群有什么问题?(我说需要做主从备份,和负载均衡策略)

2.mysql索引实现原理,为什么b+树?(我就说了B+树及特点,简历上mysql写的了解,说完b+树,我就说mysql不太熟,完了面试官一直问mysql。。。)

3.mysql索引执行流程?(我先说一下sql语句的执行流程,连接器->查询缓存->分析器->优化器->执行器,其中优化器阶段对sql顺序调整和决定执行哪些索引)

4.接着又问哪些情况下不会用索引?
(问得我有点蒙了,我就说不知道,其实早上复习笔记还看到了:经常增删改的列不要建立索引,索引表记录太少不要;mysql确实没看书,都是以前实习写sql的经验,所以到这我已经有点懵了,我想这个面试官应该主攻存储的,心有点凉了)

5.mysql支持事务吗?(我说默认不支持,使用innodb表时支持,或者把配置项 SET AUTOCOMMIT=0 就可以使 MySQL 允许在非 autocommit 模式)

6.innodb实现事务的底层?(我说不知道,现在感觉他问的就是什么方法实现事务的,用的回滚日志和重做日志我知道,哎,很多问题面试官上来就问什么底层、什么原理等,把我问懵了,很多其实我知道,都没说出来,因为感觉不是他问的)

7.mysql主从中,主节点挂了,从节点没复制完,怎么处理?(这个问题问了大概10几分钟,我先说了mysql主从复制原理,然后说mysql采用的写前日志,主节点日志是完整的,利用消息队列,订阅主节点mysql的binlog,推送到消息队列,从节点去拿。面试官说不行,主节点已经挂掉了,从节点还没复制完,我懵了一会,说不知道,反问怎么处理,面试官说主节点已经挂掉了,就没办法了,处理不了。我听完懵了,那问什么,不应该是讨论预防策略吗。)

还有5/6个mysql场景的问题,没记住

8.分布式开发怎么理解的?
说了一下分布式的概念,和流程。

9.kafka中partition和consumer的对应关系?
partition可以一对一consumer,不可以一对多consumer,consumer可以一对多。

9.kafka中,partition 10个,consumer10个,consumer消费不过来怎么办?
(因为一直说不对,我就说了一堆策略:扩容partition;producer端newsend线程增大批次容量再发送,起到缓冲;consumer使用线程池,一个线程管理consumer,给每个消息poll安排一个线程;都说不对。我想了一会,说了个用redis做一层缓存,partition poll到redis,consumer去拿,说完就知道错了,这样就不需要kafka了,单redis也可以做消息队列。就说不知道了,反问他怎么处理,他说增强consumer消费能力。)

10.kafka高吞吐率怎么保证?说了很多,Partition机制使可以并行访问分区;sendfile实现零拷贝,零拷贝过程;producer端批量发送;日志快速检索,kafka日志具体结构

11.kafka能不能保证消费有序?默认不支持有序。但是可以一个Partition同时只能有一个consumer消费,可以通过单topic单partition去保证有序;也可以通过key+手动控制offset做到有序。

12.线程共享的是什么?独占的是什么?
(说了一堆。java这块就问了这一个八股,其他全是分布式业务问题,最后面对面写完算法题,我反问时,我说分布式场景用得不多,答得不太好,面试官说这个岗位是服务端岗位,所以更需要对这些业务场景遇到的问题比较熟悉的。)

13.kafka重平衡过程?
(看过但是过程太多,没有背,记不太清,就说了generation机制和心跳请求响应)

14.kafka怎么保证不丢失数据?
(我说ISR机制和消息的ACK方式,当ISR节点和leader都返回ACK为true,producer才认为推送成功,否则重新发送。说不对,任何中间件都可以ack,失败一直发,问具体什么机制。我说半天没说上来,问他也没说上来,查了下资料,就是ISR和ACK机制)

15.那我们做个题吧:给一个深度遍历的二叉树结果数组,每加一层加“-”,第0层的根节点1,记做“1”,第一层的2,3节点,记做“-2-3”,比如“1-2-3--4---5---6-7--8--9”,输入字符串,还原二叉树,返回根节点(我问能不能用本地IDE,说不能,然后做了大概20多分钟,用一个朴素的方法写的,他让我解释下,解释了,测试也通过了。一面结束)

面试感受:

这一面,感觉凉凉了。
MySQL那块问的太多了,还问了很多mysql问题和场景问题没记住,就记住这10几个问题。
我没怎么系统看mysql的书,精力都放在JVM,JUC源码,Spring源码,Redis源码上了。
简历上也写的也很清楚,熟悉这些,最后一行写了个了解MySQL和HBase,没想到这么问,Spring、Redis、JUC、JVM、网络、OS这些,是一个没问,自己写的Spring容器项目也没问,两段实习也没问。
全是场景问题,面试官最后说这个岗位(抖音电商)需要对服务端业务问题熟悉的,哎,我没在分布式项目中实习过,怎么会知道这些,所以找的这类实习,之前实习过两段,一段是云计算的,一段是toG的SSM的项目,确实对分布式场景的问题没有了解。
感觉字节这次面试难度比较大,没有问八股文,也不问实习,八股背了几天没用上一个,实习项目准备的难点也没问上一个,心态有点崩,总共也没接到几个面试。
#面试复盘##GE##字节游戏##Java工程师#
全部评论
一共面了一个半小时,过程中大概就知道结果了,大约回答出了70%的问题,算法题写出了,不知道有没有二面,大概率没有
1 回复
分享
发布于 2022-04-19 00:34
太难咯
1 回复
分享
发布于 2022-04-21 05:26
博乐游戏
校招火热招聘中
官网直投
怎么面这么多kafka呀😥
1 回复
分享
发布于 2022-04-21 10:23
🎉恭喜同学成功投稿参与【面试复盘】,并通过审核! 😉请留意你的私信,官方红N人员将与你取得联系,进行奖励发放~ 👉🏻戳:https://www.nowcoder.com/discuss/872618了解更多活动详情~
点赞 回复
分享
发布于 2022-04-19 15:47
震颤呐
点赞 回复
分享
发布于 2022-04-21 12:11
感谢分享。面试本来也很看运气,准备的没问,问的没准备。继续加油吧。不过算法题似乎有问题吧,没说深度遍历顺序,而且给的字符串2,3,7 前边都是一个 "-" ,难道二叉树第一层三个节点?
点赞 回复
分享
发布于 2022-04-24 09:41
还有我记得抖音电商是不是也是 go 居多呐,好像 java 的没怎么问
点赞 回复
分享
发布于 2022-04-24 22:35
我现在是mysqlDBA,我的角度看mysql题答得太浅,面试官的角度可能虽然答了,但没达到心里预期,DBA要这么答直接pass。
点赞 回复
分享
发布于 2022-06-20 15:47

相关推荐

16 51 评论
分享
牛客网
牛客企业服务