记一次腾讯云(西安)后台开发面试经历

用户头像
z小赵
关注
发布于: 2020 年 08 月 15 日
记一次腾讯云(西安)后台开发面试经历





作者:z小赵

★ 

一枚用心坚持写原创的“无趣”程序猿,在自身受益的同时也让朋友们在技术上有所提升。



各位读者朋友们还好吗?是不是觉着有一段时间没有看到我的新文章了?本篇文章总结一下最近发生的事情,主要有两方面:

其一:最近这段时间因为公司组织架构的调整,身边朋友走了挺多,内心躁动的我也有些不太安分了。

​其二:女朋友在西安的工作确定了下来,加之房子也在西安,所以就萌生了回西安的想法。

接下来就心仪公司的选择和面试经历做一些简单总结。希望对朋友们找工作,尤其是在西安准备尝试腾讯云的朋友们有所帮助。



西安好找工作吗?



答案是取决于你想去一个什么样的企业。自毕业以后一直觉得西安互联网环境应该还不错,有华为、中兴、360、京东等等一些不错的国内的大厂,也有一些如 Thouhtworks 等等不错的外企。但是最近和猎头朋友交流以后发现,在西安想找到一个自己称心如意的岗位,难度相对来说还是有些大的,下面是一些猎头朋友反馈的目前西安的情况。





我对于这个回复还是持有一些疑问的,于是自己亲自逛了 Boss 直聘,发现情况基本上确实差不多。造成这种现象我认为基本上有两点,其一是自己对于市场的期望值过高(可能因为在一线城市待习惯了),其二是相对可选择的空间还是比较少。

对市场有了一些了解之后,最后选择去试试腾讯云西安的岗位,我选择的是 Java 开发,偏向于高并发、分布式相关的工作,下面是面试过程中面试官提问的一些问题,希望能够对正在西安找工作或者有跳槽想法的朋友有所帮助。



面试涉及题目及答案

面试官提问 1:自我介绍及项目经历

关于这道题,每个人的项目经历都不太一样,所以各位朋友根据自己的实际情况来介绍吧,在这里就不多介绍了。

面试官提问 2:看你项目介绍中大量使用了 Redis,那能不能介绍下 Redis 的主从同步机制呢?

关于这道题,因为我在之前的文章也分析过 Redis 主从同步的机制,所以我从 完整重同步 和 部分重同步 两个阶段去分析的,结果也得到了面试官的认可。详细的完整重同步和部分重同步机制原理是什么样的,在这里就不展开介绍了,附上链接朋友们自行查看吧。主从同步原理,点击查看

面试官提问 3:你们项目中 Redis 的内存使用和过期数据是怎么做的?

这是两道题,先来说说内存是怎么设计的,首先我们是按照业务维度去评估资源内存的使用量和 QPS 两个维度去评估 Redis 该部署多少资源,然后提到了业务中 Redis 的部署方式及原因。然后在聊到过期数据的剔除策略,这些在之前的文章也有介绍过,附上链接朋友们自行查看吧。缓存过期剔除策略

面试官提问 4:看你在实际项目中使用 Streaming 做了一些实时推荐的项目,能介绍下吗?

我们的部分实时推荐项目使用的是 Steaming,其通过对 Kafka 的 Consumer 进行了二次开发封装,屏蔽了 Kafka 不同版本对于业务的影响,同时也可以用 Steaming 去对接不同的数据源,比如现在也支持 xx 数据源的消费(因为业务比较那啥,在这里就不说明了)

面试官提问 5:既然使用了 Kafka,你知道为什么 Kafka 那么快吗?

这道题之前在 Kafka 常见面试题中有提到过,这里需要补充一点是,Kafka 的“零拷贝”机制需要朋友在深入研究下,在之前的文章里面没有深入解释过这个点,剩余的其他方面附上链接朋友们自行查看吧。Kafka 为什么那么快

面试官提问 6:使用 Kafka 有遇到过重复消费的情况吗?你们是怎么解决的?

有遇到过,这里补充一点,因为业务形态所决定消息重复消费产生的影响不是特别严重,所以在一定程度上可以暂时接受,后续通过一些手段去解决了,解决办法之前介绍过如何处理,懒得在这里继续重复了,直接看链接吧。Kafka 重复消费怎么办

面试官提问 7:关于项目咱们先聊这么多,出个题吧,怎么实现一个阻塞队列?

网上解决办法一大堆,大家自行百度吧,需要额外注意的一个点是,如何提高其并发处理的能力(这点我没答上来,期待朋友们留言一起来探讨)

面试官提问 8:MySQL 熟悉吗?MySQL 事务是什么?

ACID 准备下,时间不多了,直接略过,准备面试的朋友们记得准备一下哈。简单聊了下 读未提交、读已提交、重复读、序列化几种情况。需要额外再准备下业务中使用的事务隔离级别是怎么用的(我在项目中使用的 MySQL 不多,面试官也没有多问,主要是一个小时的面试时间快到了,哈哈哈)

面试官提问 9:知道 MySQL 的 MVCC 机制吗?

平时基本不用 MySQL,这个没答出来,之后了解了下 InnoDB 大概是通过 undo log 和版本号机制来实现的(怪我没有充分准备就面试了,哈哈,自己活该)

面试官提问 9:JVM 的垃圾回收机制了解吗?

标记-清楚算法、复制算法、标记-压缩算法、分代收集算法的实现原理。

面试官提问 10:项目中用的是 CMS 垃圾回收器吗?为什么要分为四个阶段?

初始标记,并发标记,重新标记,并发清理四阶段,系统要求快速响应低延迟,对于多核 CPU 性能更佳等方面去回答即可,网上文章很多,这里不多赘述了。

总结

以上内容基本上就是这次面试遇到了问题了,基本上围绕这项目来问的,问题也不是很难,大部分问题在之前的文章了自己也都研究过,所以答起来就很轻松。

希望通过本文能够对正在准备面试的朋友有所帮助,另外也希望不着急的朋友们平时好好打基础,面试的时候大概准备下基本上问题就不大了。

通过本次面试也知道自己对于 MySQL 这块比较鸡肋,下个系列开始搞 MySQL,继续查漏补缺,干就完了。



往期精选

 Redis系列(八):缓存到底该如何做到高可用?

 Redis系列(七):缓存只是读写回种这么简单吗?如果是,那么请你一定看看这篇文章!

 Kafka系列10:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(下)

 Kafka系列第7篇:你必须要知道集群内部工作原理的一些事!

 Redis系列(六):你说要看Redis线程模型?安排



发布于: 2020 年 08 月 15 日 阅读数: 1338
用户头像

z小赵

关注

高并发系统、大数据技术栈、研究框架源码 2018.09.17 加入

擅长高并发系统设计,熟悉大数据生态圈及框架的使用,喜欢研究优秀框架设计原理和源码学习

评论 (1 条评论)

发布
用户头像
这么多问题,当时是怎么记住的呢,哈哈。
2020 年 08 月 19 日 13:48
回复
没有更多了
记一次腾讯云(西安)后台开发面试经历