本人渣硕一枚,(阿里都没敢投,春招被字节跳动面了两次不出意外的收到了两封感谢信)研究方向微服务云计算相关。长期看各位牛油的面经,一直想着发一些面经出来回馈牛客。但是一拖再拖,直到最近才写完。这边也附上面试的时间线,给各位等hr面,等oc的牛油们提供一点参考(不过开奖这种玄学的东西每个人的时间大概率都是不同的)。
腾讯pcg后台开发(4.8hr面 4.9 offer):
一面(4.1):
1.项目介绍。
2.做的秒杀系统每秒的并发量是多少,瓶颈在哪里。
3.假设最后瓶颈在redis的话,有考虑过如何提高redis的每秒的并发量吗(事务+lua脚本)。
4.有对mysql和redis特意做过压测吗。
5.为什么不直接用内存而要用redis。
6.goalng协程,协程之间如何通信。
7.进程线程协程的区别。
8.进程间的通信方式。
9.使用共享内存的通信方式如何加锁。
10.golang中的CAS问题。
11.grpc的应用场景,相比于http它的优势在哪里。
12.TCP三次握手详细介绍,为什么两次握手和四次握手不行。
13.快速排序详细介绍。
14.编程题:
二面(4.4):
1.kubernetes的api server。
2.kubernetes中pod之间是怎么通信的,分同一个节点中的pod和不同节点中的pod来回答。
3.kubernetes中service介绍一下。
4.kubernetes中service,pod,node之间的关系。
4.项目介绍以及问了几个项目相关的问题。
5.TCP报文中的RST标志位的作用。
6.socket read返回0是怎么回事。
7.给出一篇很长很长的文章,如何统计各个单词出现的频率。(要求从文本处理阶段开始讲起,如何处理文本,如何使用正则表达式过滤,写一下正则表达式发给面试官,以及最后用什么方法统计)
8.makefile依赖关系。
9.awk命令解释一下做什么用的。
10.编程题两道:(均要求在本地测试完毕连带主函数发给面试官)
(1)实现f(n)函数,f(n)返回1-n之间整数不带7数字的个数。
(2)大致是基于leetcode子集2这道题进行的改编。
虎牙直播容器云开发(kubernetes,docker相关,4.10hr面 4.15 offer):
一面(4.2):
1.goalng垃圾回收机制。
2.goalng协程,GMP模型。
3.协程之间是如何通信的。
4.kubernetes中的readiness与liveness探针。
5.kubernetes中的Replicaset与Deployment介绍。
6.Kubernetes中服务的滚动升级的具体过程介绍。
7.mysql中的乐观锁悲观锁。
8.rabbitmq与kafka的区别。
二面(4.8):
这一面主要是在聊之前申报的专利相关的系统的设计思路。以及投递的论文中的算法思路。尤其是对于投递的论文中的算法那里面试官提出了很多疑问,我也是在不断地解答。
三面(4.9):
1.读研期间论文与专利成果介绍,研究生研究方向介绍。
2.详细介绍一下kubernetes的控制平面组件(API Server,scheduler,manager,etcd)。
3.kubernetes service与headless service区别。
4.介绍最有成就感的项目。
5.编写项目过程中遇到的难题,是如何解决的。
6.对于知识的深度与广度怎么看待,哪个更重要。
7.大学时遇到最大的挫折。
网易互娱计费系统后台开发(网易互娱一般情况下没有hr面 4.16 offer)
一面(4.14):
1.项目中消息队列处理请求是并发的还是串行的
2.OSI七层模型并列举每一层的几个协议
3.http协议与https协议的区别
4.python的垃圾回收机制与golang的垃圾回收机制
5.Golang与Python的区别,各自的优缺点
6.检测Golang内存泄漏的工具
7.Golang协程池
8.Golang context包的功能
9.消息队列并发处理问题。
10.linux从开机到展示给用户登陆的界面,这个过程中都发生了什么。
11.linux检测进程端口号被占用的命令。
12.能解释一下类似ps -aux这种命令具体是怎么获取到相应的信息的吗。linux的proc文件夹下记录进程信息的文件与linux中的普通文件有什么区别。
12.Golang如何优雅的结束协程。如何做到一个模块最多分配50个协程,一个模块最多只分配10个协程这种。
13.孤儿进程与僵尸进程。
14.linux系统怎么处理孤儿进程。
15.在浏览器输入www.163.com后计算机网络的各个层发生了什么。
16.算法题:top K问题。
17.算法题:寻找最长回文子串。
18.mysql引擎:innodb与myisam的区别。
19.mysql索引都是使用什么来存储的。(全文索引,b+树索引,哈希索引等等)
20.有想过使用内存存储数据,然后设计策略保证节点之前的数据一致性吗。类似做一个集群出来,这样会不会比直接使用redis集群性能高。(我内心:我要是有这水平还学什么redis。。。)
网易游戏二面(4.16):
主要都是对项目的深挖,一个一个项目的介绍,一个一个项目的问。
1. mysql如何恢复drop掉的数据,主从复制不是应用在这个场景的(配置mysql集群)。
2. 整个消息队列服务down掉了(不是仅仅的消费者方down掉这种),再重启有什么恢复手段吗。
3. redis服务down掉了,再重启有什么恢复手段吗。
4. 如何保证抢优惠券时先发起请求的用户先抢到。通过事务处理的话,两个事务都交给redis,一定能保证先来的事务被先处理吗,业务逻辑上的代码没有用过队列之类的来限定吗。
5. 有专门压测过mysql,redis和rabbitmq吗。
6. 部署在支持k8s与istio集群下的服务有可能出现瓶颈在入口网关的情况吗,这时候要如何处理。
7. 有什么方法提高redis的性能吗。
8. redis事务一定具有原子性吗。
9. 在协程的GMP模型中,如果一个io请求很大的话,这个时候P要怎么处理呢。
10. 怎么去确定一个高并发系统的瓶颈出现在哪里呢。
11. mysql主从复制过程介绍,主从复制的应用场景。
12. (这个是项目相关的问题)测评机如何运作的,如何判断用户提交的代码运行结果是否正确。以及如何评判用户的代码作为程序运行的性能。
13. 服务更新升级过程中如何使得新旧服务平滑的更替,以及如何处理导入到旧版本服务的用户请求,旧的服务何时被替换掉。
14. 项目持续集成的时候如何处理测试问题。那每个开发人员使用go test测试完自己的模块push上去了,但是最终merge到一起,要发布新版本了,需要再对系统整体需要测试的时候要怎么处理。
15. redis,mysql,消息队列它们各个负责什么部分,起到了什么作用。
16. 协程的底层机制(基于epoll的io多路复用)
17. 职业规划。
18. 籍贯不是广东省的,将来想在哪里发展,为什么。
19. 都拿了什么offer。
#面经##腾讯##网易互娱##虎牙直播##golang工程师##实习#