面试复盘|绿盟科技研发工程师 二面
- 开局自我介绍
- 面试官问我网络编程的流程。 我把客户端和服务端的流程说了一遍
- 如果有多个客户端来建立请求怎么办? 我回答:使用多路IO复用机制
- 那线程还是会阻塞啊? 我:使用请求队列和线程池,主线程负责连接,子线程负责处理
- 请求队列注意点是什么?我把锁还有信号量说了一下
- 如果来的客户端还是很多呢?我:缩短连接持续时间
- 你这是开源节流的方法,还有呢?我:采用分布式集群
- 那这个分布式集群,你怎么建立呢?注意点是什么?我说要做好负载均衡
- 如果两个客户端,分布在不同的服务器上面了,但是还要通信,该怎么做呢?我:建立中转服务器
- 中转服务器注意事项是什么?我:中转服务器是承压的瓶颈,也可以采用集群的方式。
- 中转服务器集群,应该注意什么? 我:第一时间没想好,他说,比如并发之间的。我说:要采用分布式锁
- 说一下你了解的分布式锁:我说了解的不深,我只知道redis的setnx可以做
做几个题吧:
- 有两个玻璃球,还有一个n层楼,说一下我们最少需要几次能够判断出在哪层楼扔玻璃球会碎?
- 说一下有两个公共节点的单链表,如何找到公共节点?我:1.采用双指针 面试官追问 还有呢?我:空间换时间,使用set存放遍历过的node
- 如果这两个单链表是有环的呢,我说:1.找到环所在2.找到入口节点3.计算链表长度4.恢复上一种情况
刚刚做完这两个之后,面试官问我期望的城市和薪资。