面试题
包括项目介绍,线程池相关,并发模型相关,HTTP报文解析相关,定时器相关,日志相关,压测相关,综合能力等。
项目介绍
-
为什么要做这样一个项目?
-
介绍下你的项目
线程池相关
-
手写线程池
-
线程的同步机制有哪些?
-
线程池中的工作线程是一直等待吗?
-
你的线程池工作线程处理完一个任务后的状态是什么?
-
如果同时1000个客户端进行访问请求,线程数不多,怎么能及时响应处理每一个呢?
-
如果一个客户请求需要占用线程很久的时间,会不会影响接下来的客户请求呢,有什么好的策略呢?
并发模型相关
-
简单说一下服务器使用的并发模型?
-
reactor、proactor、主从reactor模型的区别?
-
你用了epoll,说一下为什么用epoll,还有其他复用方式吗?区别是什么?
HTTP报文解析相关
-
用了状态机啊,为什么要用状态机?
-
状态机的转移图画一下
-
https协议为什么安全?
-
https的ssl连接过程
-
GET和POST的区别
数据库登录注册相关
-
登录说一下?
-
你这个保存状态了吗?如果要保存,你会怎么做?(cookie和session)
-
登录中的用户名和密码你是load到本地,然后使用map匹配的,如果有10亿数据,即使load到本地后hash,也是很耗时的,你要怎么优化?
-
用的mysql啊,redis了解吗?用过吗?
定时器相关
-
为什么要用定时器?
-
说一下定时器的工作原理
-
双向链表啊,删除和添加的时间复杂度说一下?还可以优化吗?
-
最小堆优化?说一下时间复杂度和工作原理
日志相关
-
说下你的日志系统的运行机制?
-
为什么要异步?和同步的区别是什么?
-
现在你要监控一台服务器的状态,输出监控日志,请问如何将该日志分发到不同的机器上?(消息队列)
压测相关
-
服务器并发量测试过吗?怎么测试的?
-
webbench是什么?介绍一下原理
-
测试的时候有没有遇到问题?
综合能力
-
你的项目解决了哪些其他同类项目没有解决的问题?
-
说一下前端发送请求后,服务器处理的过程,中间涉及哪些协议?