快手 中间件开发 二面
9.12 二面挂后补档,8.30 二面,面试官人很好,不过有点不按套路来的意思,人懵了,非常可惜没能和一面的面试官共事。
实习
0. 没有自我介绍,面试官直接开始提问。
1. 项目难点在哪,讲讲具体的指标,业务可见性或者说时延,数据量有多大?
2. 数据需要做哪些处理,哪些业务逻辑?
3. 怎么去衡量这个事情的,怎么判断做的好还是不好,指标在哪?
4. 选择 clickhouse 方案的依据,优势在哪,性能对比,为什么这套方案表现会更好?
5. 你提到列式存储架构,那和 MySQL 这样面向行架构相比各有什么利弊,行导向的业务是怎么处理的?
6. 有遇到哪些问题?
7. 为什么会存在沟通问题,是需要其他业务接入吗,最开始设计的时候有考虑过吗?
手撕
8. 问完这些直接开始手撕,middle 但不是 hot100。
leetcode 670. 最大交换
八股 & 场景
预设了个 web 服务器的场景然后开始提问。
9. 服务端 close_wait 状态的 socket 特别多,分析一下是什么情况。
10. 该如何去解决,或者说一个查根本原因的方法。
11. 客户端向服务端发送消息需要经过几次拷贝,分别发生在哪?(这里面试官应该意思是一个 echo 服务器,我理解成发送过去然后服务端打印出来了)
12. 可以怎么优化?可以优化到几次?优化了哪次拷贝?(答 mmap)
13. 还可以优化吗?(答 修改内核栈用 RDMA 这些方案,面试官应该是想要回答 sendfile)
14. sendfile 了解吗,可不可以使用。
15. 看你做了事务,讲讲 TCC 协议,实现怎么做的?
16. 事务协调器,怎么做的事务持久化,怎么记录事务状态,怎么保证事务中断正常回滚?
17. 项目里实现是实验性质还是说工程化性质的,分布式事务真做起来很复杂的。
反问
18. 技术栈 & base & 业务
总结
发挥太差了,一方面是面试流程反常规有点懵圈了,另外就是很多东西没太理解面试官描述的场景吧,事后回顾的时候发现其实也不难,就是现场宕机了,很可惜的一次面试,真的还蛮想去的,一面面试官真的很赞。
#快手##快手求职进展汇总##秋招##第一次面试#