腾讯IEG 一面面经
时间线:4.10 上午投递并做完测评 4.10下午约了4.11的面试
1.算法- leetcode 44.通配符匹配(秒A了后来发现居然是道hard...)
2.时间复杂度是多少?
3.自我介绍和项目介绍
4.介绍对微服务的理解?
5.微服务做分布式,当服务要进行更新时,怎么做到连续性?
6.(答了蓝绿部署的想法,不过感觉面试官可能在做别的事...因为他问:),那怎么保证像在夜间用户量比较小时也能让这些用户访问不会404?(这里我说增加机器数量,但成本会增加,后来我以为他知道了我说了蓝绿部署...我又说了在产品上线初期加上一个中间件去检测一天内用户量的分布图,保证选择的时段的用户量首先要最小,其实回过头看感觉这里似乎无论是他问的还是我答的都重复了...)
7.介绍consul,服务发现原理,怎么实现
8.结合consul怎么做到无缝的服务更新发布?
9.项目中服务之间有没有相互相互调用的情况?(没有)
10.consul在项目中的作用?
11.用户的请求到服务器后怎么路由到你的服务?(这里我答的不好,去答代理相关的了...现在想应该答rpc、protubuf3生成代码那块,可是这些我在一开始介绍项目的时候就说过了呀...也说的比较多,难道面试官想深入rpc问...?)
12.数据是存在哪呢?(回过头也没有理解面试官为啥会问这种问题,我就答了大概哪些存到mysql,哪些存到redis了...)
13.(讲到了session存到redis)session是做什么用的?(这里我有问题,答鉴权和我自己写的session中间件怎么实现上去了...)
14.鉴权是个什么意思?
15.session是怎么生成的?怎么和用户身份绑定?
开始八股
16.mysql的存储引擎有了解吗?
17.innodb和myisam的区别?
18.innodb索引的底层数据结构有了解吗?
19.为什么要用B+树,不用B树、二叉树、红黑树?
20.redis在项目中主要是做什么用?
21.redis有哪几种数据类型?
22.这些数据类型底层的数据结构有了解吗?(不了解,简历上写了对redis也掌握程度也就是了解...)
23.redis在磁盘上有存数据吗?(这个我答错了,我就按照中间件的理解,是操作系统和应用程序之间的处理过程,不会往磁盘里存...但后续查了redis做数据持久化时是可以存的...不过面试官甚至在我答完之后说了句ok... = =)
24.byteslice和string有什么区别?(这个答得不全,甚至稀烂,按照经验答的)
25.进程、线程、协程的区别?
26.协程可以实现并行吗?
27.协程有几种调度模式?(后续我和他讨论具体的内容...答了goroutine的调度方式,就结合GMP模型和runtime标准库中schedule、execute、gogo哪些函数答了一下...其实我感觉面试官可能平常写c++,我答到这块可能他不太熟...也可能是我答偏了...)
28.go里面字符串拼接有几种方式?(答的不全,根据经验)
29.格式化输出时,%v和%w有什么区别?(%w想不起来了,原来是输出error...)
30.go的GC原理、回收策略(这里回过头发现没答好,答了垃圾追踪、技术,策略上答了分代假说以及对应的对象清理方式,没答三色法,可能留了不好的印象)
31.TCP和UDP的区别?
32.TCP有哪些机制保持可靠性?
33.TCP关闭链接需要几次握手?第一次挥手丢失会怎么样?
34.如果对方发了FIN包,自己回了ACK包后,ACK包丢失会怎么样?
35.挥手结束之后,还可以在相同的IP和端口发起链接吗?
36.HTTP和HTTPS有什么区别?
37.HTTPS的证书怎么保证了传输的安全性?
整体上自我感觉是项目上因为紧张有一些没有阐述清楚...八股上基本都在狂答(面试道中后期就口干舌燥了),go关于字符串那两个有点可惜...
面试后还问了关于消息队列、docker的了解,我大致说目前不了解,不过已经确定学习方向中有这些内容了...
不过如果说因为这些不会导致流程终止,那还为什么要过我简历呢...当然我自己也确实没有每个问题都答出来
面试官人还是很好的,面试中校园网出问题退出了会议一次,回来后面试官也没说什么,但感觉全程在回答完问题后都没有比较大的反馈,大部分问题回答完都是"嗯、OK"...
4.12 中午发现流程终止
#牛客解忧铺##腾讯##实习##24届暑假实习##面试#