字节社招 国际电商 后端一面(凉经)
1.开头自我介绍
2.让我挑选一两个项目重点介绍下
3.根据项目介绍中描述的某个功能跟线程池有关,问在限定系统吞吐量的情况下,针对部分提交给线程池的任务(大概10%)失败的场景下,针对这些失败的任务应该怎么去重试?
当时我的想法是把失败的任务提交到消息队列,但是面试官强调,当时系统承受的吞吐量已经满了,无法接受事件的消费,我又说能不能用延时队列,等这个高峰过去了再去消费,总之这里绕来绕去没有说到面试官想听的,最后面试官的意思是这里应该对任务分级,按不同级别去投送消息队列(大概是这个意思)
4.可能觉得我的项目也没什么意思难点,然后面试官就说来问些基础的,然后先问了我数据库的隔离级别,如何解决幻读,MVCC ReadView具体如何实现解决的幻读
5.kafka集群中zookeeper的作用是什么,我这里就大概说了保存broker元信息,服务注册,服务发现这些
6.redis持久化是如何实现的,我就说是了RDB 保存某个时刻的内存快照写进磁盘,save和bgsave命令这些
7.然后又问了一些线程池的参数,线程池是怎么运行
8.最后是一道算法题,一个有序递增数组,找到目标target出现的次数,时间复杂度小于O(n),不能遍历,所以得用二分去查,这里一开始我的思路写的有点问题,后来想到找到一前一后两个下标相减即可(LC172....以前刷过,但是最近准备面试简单题目刷得不多,想字节社招应该也不会考简单的,看来是我想多的.....)
9.反问
总体来说除了3的场景题,我没说出面试官理想的答案,感觉其他都还行,最后算法题每一次性A出来,一开始写的有些问题,后来修改对的,大概花了几分钟吧,前面的题目其实也是看的简历上用过的技术组件延展来问的
大概面了一个小时,感觉有点凉,面试官小哥感觉挺年轻的,应该不是直属leader身份,全程都很客气(不知道是不是我不值得leader来面试我),因为我之前是java开发所以没有问很多语言技术细节,如果过了约二面再来补充
背景:海外硕,毕业后校招进的腾讯,两年工作经验(负责的业务对互联网行业来说极其边缘)