第二次面试, 完全不同的经历,我觉得可能其中一个问题是我没带耳机好几次没听清他讲了啥。 下次一定戴耳机。
他就一点基础知识都不问, 对着我简历 把简历每一句话都问了。
拿过什么奖学金吗?
上过哪些课? 你最喜欢的课学的最好的是什么?
起码75%时间问了我的每个项目,。
问我拿了哪些奖学金,他把我每一个得的奖都挖出来问了,他问我得的奖有多少人得过。
数学竞赛三等奖 你们年级有多少人 大概是什么样一个水平?
全国大学生数学竞赛二等奖初赛大概是有多少人?
聊天室支持多少并发?有没有测试过? 有没有和同学测试过? 受哪些因素影响? 我也没答上来,
查了查应该是网络-硬盘读写速度-内存大小-cpu处理速度。 CPU需要处理的上下文切换也越多,额外增加了CPU的消耗,然后就直接导致平均响应时间增加。
更多并发应该怎么做?
垂直扩展:提升单机处理能力。垂直扩展的方式又有两种:
(1)增强单机硬件性能,例如:增加CPU核数如32核,升级更好网卡如万兆,升级更好的硬盘如SSD,扩充硬盘容量如2T,扩充系统内存如128G;
(2)提升单机架构性能,例如:使用Cache来减少IO次数,使用异步来增加单服务吞吐量,使用无锁数据结构来减少响应时间;
水平拓展
(1)反向代理层可以通过“DNS轮询”的方式来进行水平扩展;
(2)站点层可以通过nginx来进行水平扩展;
(3)服务层可以通过服务连接池来进行水平扩展;
(4)数据库可以按照数据范围,或者数据哈希的方式来进行水平扩展;
服务器一直保持连接很费资源, 怎么检测客户端还在不在? 我说,服务器发心跳, 10秒发一个, 发了100个没回就取消分配资源。
查了查:
服务端发送心跳包给客户端,客户端回应心跳包,服务端连续3次接收不到,就认为断开
常见的长连接服务端,对一个tcp连接的处理是,记录上一次读写时间,超过一定时间就主动关闭。
而检测对方,通常方法是用“心跳”,也就是双方周期性的发送数据给对方,同时也从对方接收“心跳”, 如果连续几个周期都没有收到对方心跳,则可以判断对方或者宕机或者异常推出或者网络不通,此时也 需要主动关闭己方连接,如果是客户端可在延迟一定时间后重新发起连接。 第 3 个问题是处理效率问题。不管是客户端还是服务器,如果是长连接一个程序至少需要两个线程, 一个用于接收数据,一个用于发送心跳,写数据不需要专门的线程,当然另外还需要一类线程(俗称 Worker 线程)用于进行消息的处理,也就是说接收线程仅仅负责接收数据,然后再分发给 Worker 进行 数据的处理。如果是短连接,则不需要发送心跳的线程,如果是服务器还需要一个专门的线程负责进行 连接请求的监听。这些是一个通信程序的整体要求.
聊天室如果你要拉一个群怎么办 ?怎么写入磁盘? 我说保存在内存中, 过一段时间事务提交到硬盘。
聊天记录怎么写入磁盘?
然后问我做的这个项目做你的项目有什么应用吗 有什么难点吗?是谁想的idea? 用什么写的?
大概是确认我是不是编的。 经历solid与否。
你们做了项目, 下一步怎么落地?PC可以用吗? 应用场景是哪些?
没几个能回答上来, 哭了。
全部评论
(2) 回帖