年底向阿里和字节投递了简历,有幸都拿到了offer。可能是我运气比较好,总的来说两家公司的面试体检都非常好,流程很快,面试官也都很专业。字节是三轮技术面+一轮HR面,阿里是四轮技术面+一轮HR面。一些技术问题,这里简单罗列一下,不写答案了。很多问题是回答以后再接着延伸问的,类似的问题在这边我就直接给他合并了。

废话就不说了,趁着还能想起一些东西来,记录一下本次社招面试过程。还有一点,不管是阿里还是字节,手写算法都是在他们提供的ide上写的,没有提示,不能编译,只能写完run。这个比较难受。

字节

一面 (约1.5h)

  • 看你做过微服务拆分,你们的微服务拆分是按什么原则拆分的?要是两个领域之间互相依赖怎么办?
  • 你负责的服务,流量最大的服务QPS大概有多少?做过限流吗?限流原理了解吗(令牌桶)
  • 那使用令牌桶做限流的话,遇到流量突刺,例如你设置的QPS最高为1000,但是这1000个请求在第一个毫秒瞬间到达了怎么办?
  • Redis使用场景(缓存、锁) 自己写的锁是怎么写的 setNx 写入一个过期时间。然后问那事务还没执行完锁过期了怎么办?使用Redission,会有个看门狗自动续期。
  • 请求的鉴权怎么做,了解哪些鉴权协议(回答了JWT 和 OAuth2协议,乱七八糟地说了一下)
  • 算法题:每K个元素,链表翻转一次 (1, 2, 3, 4, 5, 6 k=2) -> 2 1 4 3 6 5

二面  约1h

  • 怎么保证日志采集器的稳定性?(ECS用supervisor, K8S字节写了个monitor脚本和自动重启脚本,和采集器容器一起打包成一个pod进行部署)
  • 你对filebeat二次开发主要改了哪些东西?你刚刚说道filebeat僵死,所以你输出一些定时日志,然后再采集这个日志,不会对业务方造成影响吗?
  • kafka 在你项目中的使用场景。消息是有序的吗?如果做到幂等性。了解Exactly once语义吗?kafka是怎么支持exactly once的语义的。消费延迟遇到过吗,怎么解决。
  • 10.HTTP的一些问题,HTTPS的通信加密过程。长连接,短连接。
  • 也问了限流相关,然后做了一个场景设计题:要发5万块钱的红包,分成1k份。预计抢红包的人有十亿。主持人说三二一以后弹出抢红包窗口。
  • 还让我写了几个sql,具体不太记得了 基本和 group by 有关系,问了一下having 和 where的区别
  • 算法题:括号匹配,返回是否是正常匹配 (()()((()))) -> true (())())(() -> false

三面

三面比较快,大约50min。聊的大多都是软技能,很多问题不记得了。

  • 你做的这个采集自动运维系统怎么去衡量实时性、稳定性和准确性这三个指标。了解过行业内其它公司的方案吗?或者说别人能做到一个什么样的程度
  • 怎么做资源规划,日常迭代的流程模式是怎么样的
  • 让我介绍一下公司的业务场景,盈利模式。以及做项目过程中是否会做用户拜访,设计圈 0 -> 1是怎么做的,做了哪些事情,怎么衡量结果。
  • 算法题:O(n)复杂度实现删除链表倒数第k个元素

HR面

HR 面我都以为稳了,后来HR跟我说这也是一轮面试…… 所以,没拿到offer都不能掉以轻心

  • 为什么离职
  • 职业规划
  • 聊入职意向,是倾向于做业务还是深入做技术
  • 原来的公司哪里吸引我,让我可以呆4年
  • 对work life balance 怎么看

阿里

一面-大约1个小时

  • 为什么要实时采集和离线采集,分别用于什么场景。然后,基于这个问题往下问了很多(对方对这个领域非常了解)。不过,基本都是围绕,我如何解决xxx问题来展开,所以聊得很顺利。问过相关组件大概是:flink, es, kafka,zk 还有就是数据量,这个量级的数据量处理大约需要多少资源。问了一些具体的问题。
  • 聊了一下IO模型,page cache, 网络IO。如何做日志不落盘,我回答了目前在尝试flumeAppender,然后问了几个关于flumeAppender的弊端怎么解决。Linux 用户态文件系统是否了解
  • 算法题:两个字符串a, b 是否能按顺序打散后组成c (abc, def) -> abdcef true

二面-大约1个小时

  • 也是聊采集的项目,对filebeat有哪些改动,改完以后如何确保对其它模块没有影响(可能是因为我面的部门,入职后也会做这个相关,问得很细)
  • mysql分库分表的场景和问题,平时怎么用的
  • 是否对现在云原生的技术有了解,OpenTelemetry 是否了解。
  • 平时Elastic Search使用场景,如果做数据同步。ES准实时性问题。
  • Restful API和普通API的区别,公司内部的SOA怎么实现的。
  • 算法题:给一个有序数组,找出第一个比k大的数字的下标。要求自己写测试用例(感觉也是考察的一环,边界条件一定要想清楚)

三面

三面面试官感觉好像很忙,问题一个接一个问得非常快,没做算法题。整体面试时间在50分钟左右

  • 接手一个新项目,不了解的情况下,如何避免出问题。(这个当时感觉没答到点子上,只说了要分支测试要充分啥的。面完以后想想,应该包括性能测试、灰度部署、以及可观测性监控这些点。)
  • 怎么解决Redis 热key。我只回答了本地缓存、Redis集群水平扩容。但是面试官对这两个答案不够满意,让我考虑本地缓存被击穿,就是经常有大量请求打到Redis的场景。集群扩容太重 ,问我有没有其它方案。
  • 也让我写了几个 SQL,但是感觉也都不太复杂
  • 其实三面问了挺多问题,但是他问得很快,我那天又很懵。状态很差,记不清楚了(前一天在公司通宵了,第二天又失眠了。差不多四十多小时没睡在面试……)

HR面-30min左右

  • 四面面试官休假了,就直接先HR面了。和字节差不多的问题,不过因为他们知道我在面字节。还问了一下,我自己的倾向性。这里我比较坦诚,直接说了倾向于阿里的中后台岗位。所以后面给的评级待遇啥的,他们应该就是卡着字节给。

四面

40min左右

四面本来很紧张,因为了解到是个级别非常高的大佬。不过,这面反倒最简单,就是聊聊天。话题主要有:原公司的业务模式,盈利模式,技术团队规模,服务器规模等,聊一些价值观念。离职原因,对跳槽的看法,对加班的看法。对转岗活水的看法。对新技术是否有跟踪,平时会做哪方面的积累。反正很泛。

感觉这一面主要考察一个人的价值观,和逻辑思维能力,说话得有条理。这个我没做好,东拉西扯的。