强度最大的一次面试,收获非常大,非常感谢面试官
1. 自我介绍(说自我介绍挺快的哈哈哈)
2. 问了下软著,我说是学校项目,简单介绍了下
3. 简单介绍下一个比较有收获的项目(说了下框架项目)
计算机网络阶段:
4. 网络七层模型分别是什么
5. TCP和UDP的应用场景是哪些
TCP适用:网页、电子邮件、远程登录连接、文件传输
UDP适用:语音通话,多播通信,DNS解析
6. TCP如何实现可靠传输
面向连接、同步序列号、校验和、流量控制和拥塞控制
7. 第一次握手,客户端发送SYN报后,服务端回复ACK报,那这个过程中服务端内部做了哪些工作(答不上来)
8. 服务端对客户端的每个SYN包都会回复一个ACK包吗?如果是的话,大量SYN包发送给服务端服务端会发生什么事情?(答不上来,最后说我是不是不了解连接池半连接池之类的,应该是这方面知识)
9. 服务端默认能接受多少个连接
10. 从输入url到页面显示发生了哪些事情
11. ARP相关:拿到IP地址还要去获取MAC地址,TCP连接需要用到MAC地址吗?(我说了要找到对应的网卡,不知是否有误)
12. DNS解析走的协议(没答上来)
13. 网页非常慢转圈圈的时候,要定位问题需要从哪些角度
14. HTTP默认的端口
15. 端口通不通用什么命令,ping命令走的是什么协议?(没答上来)
16. 错误返回码认识哪些(只大概说了下1开头、2开头、3开头、4开头和5开头分别代表什么,还有常用的404,500,502)
17. 403代表什么含义
18. 重定向的作用
19. 代理服务器像nginx了解吗
20. 反向代理,那正向代理是什么
21. TCP的拥塞控制
22. HTTP层请求的类型有哪些
23. GET和POST的使用场景,有哪些区别(我一直不知道GET也能添加参数呜呜呜,我以为GET是获取POST是控制,这点完全错了后面被问倒了,问GET也能添加参数那POST的作用是什么)
24. HTTP的长连接是什么
25. HTTP长连接与WebSocket有什么区别(没答上来)
26. 进程跟线程的区别
27. 多线程是不是越多越好,太多会有什么问题(只答了内存占用和切换损耗,之后提示对同块数据的争用相关)
28. 进程调度算法(说错了一个LRU)
29. LRU是做什么用的(解释不上来,我问能不能算法解决,主动说要写算法的也就我了吧)
30. 20分钟的LRU算法实现(反问环节被说写得太慢了)
31. MySQL和Redis的区别,应用场景
32. MySQL有哪些存储引擎
33. MyISAM、InnoDB、Memory引擎的区别有哪些(只简单答了亮点)
34. 事务用来解决什么问题
35. MySQL存储的数据结构是怎么样的
36. Text数据类型可以无限大吗(没答上来)
37. MySQL索引的优缺点,什么时候不适合用索引
38. 开放性问题(这个应该考察运营能力吧,后知后觉)
有100台机器宕机了,需要你快速排查,有ABCD四种方法,他们的诊断能力各不相同,有的诊断强有的诊断弱,但是诊断强的消耗时间也长,问你怎么调度能在限定时间内快速排查并恢复,资源如何串联利用
39. linux端口状态查询有哪些命令,常用命令有哪些?
反问环节:
有哪些还需要提升:
a. 对网络之类的实现原理之类的了解不多,需要提升
b. 对算法还需要更加熟练,LRU是常见的
开放性问题比较好的方案:
每个环节的能力不同,可以认为每个环节是一个百分比,正常情况下全部左移在自动诊断里能闭环(应该是指自动诊断是最好的方法也就是能力最强的方法)但是自动诊断的准确性如何得到验证,在调度任务前期先走自动化的流程,再走人工干预,人工干预三步走:初级中级高级,但是最终目标是自动诊断,但是前期需要人工来跟自动诊断进行对比验证,然后把规则落地,这样下个类似的case过来之后就能实现自动化的闭环,前期相当于是一个灰度验证的过程,任务在左边中间右边都有调度,然后慢慢就左移到最左边去了,关键问题是如何校验合法合理性,
运营开发的主要工作:也是后台开发,但是偏运营,需要做一些上层的东西,但是这个组就是后台开发,给别的项目提供后台稳定的服务