百度二面 深圳c++/php/go

问得好偏,不是传统的八股文,面试官也是华科的,但是下手是一点也不留情啊,确实全是做c++的,又问c++

刚开始的时候介绍部门是干啥的,怎么看待转编程语言(当然没关系),然后问为什么不读研(感觉可能他们这全是研究生,说是搞媒体云pcdn的,不是很懂)
1. 先写个LRU,刚开始用链表实现,问能不能优化查询(hash可以优化查询),hash键值都存的什么(值存的是链表节点指针,键就是要查找的数据的值)
2. map有哪几种实现(红黑树,哈希表),哪种实现空间耗费的多(答哈希表,分析了一通原因,不知道是不是对的)
3. 知道布隆过滤器吗,说下实现原理 (通过概率+ hash + bitmap balabala),说下这个东西有什么用(防止缓存穿透,避免不存在的数据请求到达数据库,造成数据库压力过大)
3. 说一下一致性hash(答虚拟节点啥的,顺带提了一嘴redis横向扩容,结果他就逮着不放)
4. redis横向扩容的话假设现在有9000qps,然后有两台redis通过一致性hash横向扩容,每台只能顶住5000qps,有没有可能顶不住(有可能,9000qps请求的数据可能通过一致性hash进行运算之后全部落到一台redis上),又问怎么解决(答redis主从复制,不知道是不是他想要的答案)
5. 网络包路由的过程 (这个忘了)
6. 如果你实现了一个http server 和一个 http client ,请求的时候可能会有一些请求超时和无响应,如何排查问题(答可能由于网络拥塞),如何判断是否是网络拥塞(答ping查看丢包数,他说linux内核会记录tcp丢包数啥的,我说不知道),接着说通过服务器日志查看是否是业务逻辑有问题,然后我就不知道了(然后他不是很满意),又问我如果服务器只能接受20个tcp链接,如果同时有100个连接请求链接会发生什么,(我说第一次握手之后服务端会建立半连接队列,同时连接多了,会导致超量的连接建立不成功),又问如果没建立成功客户端能感知到吗(答不能,其实不知道),又问如果是全连接队列满了,能感知到吗(答不知道)
7. 然后就是介绍项目的核心问题,怎么解决核心的问题

还有些问题想不起来了,就挺奇怪的,感觉问的都是挺偏的东西,很多没答出来,感觉估计是凉了

8.8
刚才打电话约三面了,没想到这么快,许愿三面能过
全部评论
被联创学长一面挂过,谁懂啊
3 回复 分享
发布于 2023-08-08 16:01 陕西
有两个问题咨询一下哈: 1.我觉得红黑树耗费更多一些吧,因为要存储孩子节点的信息和颜色信息,哈希表的话只需要存键值对 2.半连接队列满了之后不一定会丢弃,因为服务端可能开启syn_cookies功能,服务器会根据当前状态计算出一个cookie值,并将其放到第二次握手中发出,当收到第三次握手的时候,用这个cookie值进行验证,成功后放到全连接队列。如果没有开启,这个时候客户端就会感知到,也就是connect调用失败。然后就是全连接队列,正常来说,全连接队列满了之后,连接会默认丢弃,这个时候客户端肯定是ENSTABLISH状态(因为第三次握手已经发送成功了),所以不会感知到,但是后续发送的请求都会超时,如果超时重传没有达到最大次数的时候,也就是客户端没有关闭连接,如果全连接队列有空闲位置,仍然可以通过这些请求建立连接。(第三次握手ACK标志位是1,并且是可以携带数据的)
2 回复 分享
发布于 2023-08-09 15:03 江苏
兄弟你一面完多久出的结果呀
点赞 回复 分享
发布于 2023-08-08 08:05 四川
同学,华为24年应届秋招提前批已经开始,有兴趣了解下计算产品线情况以及优势吗?
点赞 回复 分享
发布于 2023-08-10 18:07 广东
不如也试试度小满
点赞 回复 分享
发布于 2023-08-26 23:00 北京

相关推荐

16 116 评论
分享
牛客网
牛客企业服务