腾讯云智 - 后台开发 - 二面 4.10

1. 面试官自我介绍

2. 自我介绍(实习,开源,项目)

3. 现在我有100亿个数,怎么求这100亿个数字的最大的一万个数?(分治)

4. 有没有别的办法?(开个小根堆,大小超出10000的时候比较当前数字和堆顶的关系,大于则替换,最后堆里的就是答案)

5. 还能想到别的办法吗(位图标记数字,最后从高位统计结果)

6. ok,那我现在要求100亿个数里出现次数最多的一万个数怎么做(分块计数,然后把计数结果cnt作为上个问题的数值)

7. 常见的排序算法有哪些?讲讲快排,冒泡,归并,基数

8. TCP三次握手?第一次发包的时候服务端没在监听怎么办,客户端服务端分别怎么处理?

9. 项目里RESP协议怎么实现的?解析一个请求编码的过程?(举了解析get命令解码的过程的例子说明)

10. 请求的编码是在你网络层的TCP连接的字节流里去传对吧,你怎么判断这个请求的结束位置?(从resp编码结构考虑,\r\n\r\n的位置)

11. 那如果我发一个请求这个时候发一半客户端断开不发了,这种情况你服务端怎么处理?(服务端实现上 在拿到结束标志位之前会处于WAIT状态)

12. 那如果这里我发了一个set命令的请求携带了非常长的数据,比如说有1G吧,你怎么处理,不能一直等待吧(一般会设置携带参数值的最大长度限制,超出直接返回错误状态)

13. 讲讲Bitcask(日志结构,类别,读写,内存索引,merge),Bitcask和LSM的区别,性能对比

14. 讲讲你参与的seata-go这个开源项目,它是怎么实现/解决分布式事务呢?(讲了AT,Saga流程和适用情景)

15. 打断一下,讲的很详细,那我举一个场景的例子你讲讲解决办法好吧。比如我有一个目标服务,这个目标服务去调A服务,A服务成功会写库,之后会调B服务,同样成功会写库,然后呢AB都成功的时候目标服务会写库,怎么用seata go解决这个场景?(讲了在saga模式下的实现,然后讲了这个场景在saga下每一步成功的状态机变化和失败的反向补偿整个流程)

16. 好的,seata虽然我没用过,但是你说的这个东西对我比较有帮助,我后面去学习一下。(阿哲)

17. 我们也面了挺久了,那我问最后一个问题好吧,怎么去设计一个简单的类似redis的缓存,只需要支持get set方法就ok,用LRU作为淘汰机制?怎么保证并发访问?优化锁粒度(分桶),有看过redis源码这里怎么实现的吗?(没有)

18. 闲聊 + 反问:

- 闲聊开源相关

- 反问 您觉得我目前需要提升的点

- 参照整个面试过程,我有希望通过您这一轮吗?(没问题(太好力云智,点名表扬))

- 您有什么推荐阅读的博客或者资料吗

---

全程1h20min左右,问的不多但每个问题聊的时间比较久

全部评论
4.11 upd 官网状态 hr 面
2 回复 分享
发布于 04-11 10:37 浙江
太强了,没一个会的,佬这些知识是怎么学的
1 回复 分享
发布于 04-11 10:45 福建
没考算法吗?
点赞 回复 分享
发布于 昨天 22:09 四川
二面一个小时吗竟然 好像半个小时下班了
点赞 回复 分享
发布于 昨天 17:11 广东
佬,面的哪个部门,我昨天计算产品中心二面
点赞 回复 分享
发布于 昨天 13:32 河南
接好运
点赞 回复 分享
发布于 04-11 12:46 北京
mark大佬
点赞 回复 分享
发布于 04-11 01:11 广东
太强了佬
点赞 回复 分享
发布于 04-11 00:54 湖北
base是哪里
点赞 回复 分享
发布于 04-11 00:51 山西
mark一下大佬
点赞 回复 分享
发布于 04-11 00:48 山西
有实力,我也学到很多!
点赞 回复 分享
发布于 04-10 23:22 湖北

相关推荐

评论
6
35
分享

创作者周榜

更多
牛客网
牛客企业服务