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

互联网全栈架构

共 2697字,需浏览 6分钟

 ·

2020-08-27 00:41


作者: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,继续查漏补缺,干就完了。觉得内容对你有帮助的话请多多转发支持一下我呗。

1. 人人都能看懂的 6 种限流实现方案!

2. 一个空格引发的“惨案“

3大型网站架构演化发展历程

4Java语言“坑爹”排行榜TOP 10

5. 我是一个Java类(附带精彩吐槽)

6. 看完这篇Redis缓存三大问题,保你能和面试官互扯

7. 程序员必知的 89 个操作系统核心概念

8. 深入理解 MySQL:快速学会分析SQL执行效率

9. API 接口设计规范

10. Spring Boot 面试,一个问题就干趴下了!



扫码二维码关注我


·end·

—如果本文有帮助,请分享到朋友圈吧—

我们一起愉快的玩耍!



你点的每个赞,我都认真当成了喜欢

浏览 41
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报