微派go后端一面

#一面凉经#
3.21微派贪吃蛇大作战go后端实习生
面了大概一个小时
计网被狠狠拷打了,怎么这么难
1. 自我介绍
2. OSI七层模型是什么?
3. 每层是干什么的?解决了什么问题?(开始答得每层有什么协议,他说不对,问我每层解决了什么问题,比如网络层,物理层。答得不好)
4. 为什么要分七层?(解耦合,专注自己每一层的职责)
5. OSI分层的思路对开发有什么帮助?(举例MVC中各层的处理逻辑独立)
6. 应用层协议有什么?(http,https,ws,grpc,我为什么要说ws啊,我艹了)
7. ws,grpc是基于什么的?(答得http2,但是ws是http1.1握手+tcp通信)
8. TCP三次握手流程?具体报文变化?(报文真不会啊)每一步的意义?
9. TCP怎么实现的面相连接与可靠?(讲了ACK应答,拥塞控制,滑动窗口啥的,拥塞控制忘了好几个名词)
10. TCP和UDP哪个传输字节流,那个传输报文(搞反了...很好,被看出来计网学的一坨了)
11. ws的底层实现(只知道是http1.1做的连接,之后的传输是ws自己处理的)
12. 基于udp做一个可靠的传输协议(直接抄TCP的,应用层手动拆分)
13. http1->http1.1->http2->http3的变化
14. 讲一下GMP模型
15. 为什么要提出协程(用户态,轻量无感实现线程同样的效果)
16. 讲一下channel的实现
17. 为什么go语言鼓励通过通信实现共享内存,而不是通过共享内存实现通信?(答得各个协程之间互相隔离)
18. 项目里面redis用了什么?什么数据结构?(做单聊,用的List)
19. 还用过什么数据结构?(String做缓存)
20. 为什么不考虑使用hash?(直接操作redis更新需求小,大多是直接覆盖)
21. redis是单线程还是多线程的?(IO多线程,事件处理单线程)
22. redis多路复用怎么实现的?(各个操作系统不同,linux上用的epoll)
23. 为什么redis使用单线程而其他的数据库使用锁?(基于内存,性能主要瓶颈不同)
24. redis怎么实现一个排行榜?如果分数一样按照时间排序怎么处理?(用Zset,Val直接存一个json字符串,时间字段在前,比较完时间字段就得到比较结果了)
25. 为什么项目用微服务重构?(机器带宽问题,多人协作问题)
26. 你觉得什么时候才需要用到微服务?(没想明白,只说没钱,服务器资源不够)
27. 微服务的优劣势(部分更新而不是导致所有服务挂掉,运维成本比较高)
28. 拆分微服务的关键,是如何做拆分的?(水平拆分和垂直拆分)
29. leetcode最长公共前缀

反问:
1. 游戏后端和一般的业务有什么区别?(看业务,做活动的和一般的后端没差,其他的不太一样,但是我没记住)
2. ZSet的那题的优雅解决方案?(float类型,小数点前用分数,后面用时间戳)
3. 什么时候要拆微服务?(不同服务之间的流量大小不同,需要消耗的资源不同,所以当业务体量很大,出现严重的流量不等的时候适合拆分)
全部评论
我去实习生问这么复杂
点赞 回复 分享
发布于 03-25 12:10 河北
老哥写题是共享屏幕idea吗还是怎么写
点赞 回复 分享
发布于 03-25 16:12 北京
我去,实习有点怕了
点赞 回复 分享
发布于 03-28 12:04 浙江
老哥有二面通知了吗
点赞 回复 分享
发布于 03-28 19:08 湖北
投了多久面试的呀
点赞 回复 分享
发布于 昨天 13:23 湖北
佬有tl参考参考嘛
点赞 回复 分享
发布于 今天 16:16 四川

相关推荐

评论
1
11
分享

创作者周榜

更多
牛客网
牛客企业服务