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

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/7f/7f2f11ae0332ed24e3e493e2996e4e3b.jpeg","alt":null,"title":null,"style":null,"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"作者:z小赵"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"★ "}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"一枚用心坚持写原创的“无趣”程序猿,在自身受益的同时也让朋友们在技术上有所提升。"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"各位读者朋友们还好吗?是不是觉着有一段时间没有看到我的新文章了?本篇文章总结一下最近发生的事情,主要有两方面:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"其一:最近这段时间因为公司组织架构的调整,身边朋友走了挺多,内心躁动的我也有些不太安分了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"​其二:女朋友在西安的工作确定了下来,加之房子也在西安,所以就萌生了回西安的想法。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"接下来就心仪公司的选择和面试经历做一些简单总结。希望对朋友们找工作,尤其是在西安准备尝试腾讯云的朋友们有所帮助。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"西安好找工作吗?"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"答案是取决于你想去一个什么样的企业。自毕业以后一直觉得西安互联网环境应该还不错,有华为、中兴、360、京东等等一些不错的国内的大厂,也有一些如 Thouhtworks 等等不错的外企。但是最近和猎头朋友交流以后发现,在西安想找到一个自己称心如意的岗位,难度相对来说还是有些大的,下面是一些猎头朋友反馈的目前西安的情况。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https://static001.geekbang.org/infoq/e0/e095b87fe1d62640ae5942667ef7ef7c.jpeg","alt":null,"title":"","style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":"","fromPaste":false,"pastePass":false}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我对于这个回复还是持有一些疑问的,于是自己亲自逛了 Boss 直聘,发现情况基本上确实差不多。造成这种现象我认为基本上有两点,其一是自己对于市场的期望值过高(可能因为在一线城市待习惯了),其二是相对可选择的空间还是比较少。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"对市场有了一些了解之后,最后选择去试试腾讯云西安的岗位,我选择的是 Java 开发,偏向于高并发、分布式相关的工作,下面是面试过程中面试官提问的一些问题,希望能够对正在西安找工作或者有跳槽想法的朋友有所帮助。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"面试涉及题目及答案"}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 1:自我介绍及项目经历"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"关于这道题,每个人的项目经历都不太一样,所以各位朋友根据自己的实际情况来介绍吧,在这里就不多介绍了。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 2:看你项目介绍中大量使用了 Redis,那能不能介绍下 Redis 的主从同步机制呢?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"关于这道题,因为我在之前的文章也分析过 Redis 主从同步的机制,所以我从 "},{"type":"text","marks":[{"type":"strong"}],"text":"完整重同步"},{"type":"text","text":" 和 "},{"type":"text","marks":[{"type":"strong"}],"text":"部分重同步"},{"type":"text","text":" 两个阶段去分析的,结果也得到了面试官的认可。详细的完整重同步和部分重同步机制原理是什么样的,在这里就不展开介绍了,附上链接朋友们自行查看吧。"},{"type":"link","attrs":{"href":"https://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484394&idx=1&sn=7423bc0983bdcfc48dcaaf14c700b93d&chksm=e8eb7a7edf9cf368629b751280337f350ddf383cd8cb410491aa6fcd623e84f5c072bd4ea87e&token=267415244&lang=zh_CN&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"主从同步原理,点击查看"}],"marks":[{"type":"strong"}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 3:你们项目中 Redis 的内存使用和过期数据是怎么做的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"这是两道题,先来说说内存是怎么设计的,首先我们是按照业务维度去评估资源内存的使用量和 QPS 两个维度去评估 Redis 该部署多少资源,然后提到了业务中 Redis 的部署方式及原因。然后在聊到过期数据的剔除策略,这些在之前的文章也有介绍过,附上链接朋友们自行查看吧。"},{"type":"link","attrs":{"href":"https://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484290&idx=1&sn=9e4d47ba8042543c9718ebcb766c8df3&chksm=e8eb7a16df9cf30057e2ccbc224f336a32b92b3342c461c8d54572913bb9cbac095266f5e4d4&token=267415244&lang=zh_CN&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"缓存过期剔除策略"}],"marks":[{"type":"strong"}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 4:看你在实际项目中使用 Streaming 做了一些实时推荐的项目,能介绍下吗?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我们的部分实时推荐项目使用的是 Steaming,其通过对 Kafka 的 Consumer 进行了二次开发封装,屏蔽了 Kafka 不同版本对于业务的影响,同时也可以用 Steaming 去对接不同的数据源,比如现在也支持 xx 数据源的消费(因为业务比较那啥,在这里就不说明了)"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 5:既然使用了 Kafka,你知道为什么 Kafka 那么快吗?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"这道题之前在 Kafka 常见面试题中有提到过,这里需要补充一点是,Kafka 的“零拷贝”机制需要朋友在深入研究下,在之前的文章里面没有深入解释过这个点,剩余的其他方面附上链接朋友们自行查看吧。"},{"type":"link","attrs":{"href":"https://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484048&idx=1&sn=2de06942948b02842fd042e7783cbc61&chksm=e8eb7b04df9cf2121a98984fae0207d422b9d643a2c3ff4d7c91cabfe2e8b4d530a62c376035&token=267415244&lang=zh_CN&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Kafka 为什么那么快"}],"marks":[{"type":"strong"}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 6:使用 Kafka 有遇到过重复消费的情况吗?你们是怎么解决的?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"有遇到过,这里补充一点,因为业务形态所决定消息重复消费产生的影响不是特别严重,所以在一定程度上可以暂时接受,后续通过一些手段去解决了,解决办法之前介绍过如何处理,懒得在这里继续重复了,直接看链接吧。"},{"type":"link","attrs":{"href":"https://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484078&idx=1&sn=3b0e754674804d61bde1df498f0bd092&chksm=e8eb7b3adf9cf22c370346b0eb2aa516f517daf4d0fa5977f41412d64f22cfe86f8eec90c58c&token=267415244&lang=zh_CN&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Kafka 重复消费怎么办"}],"marks":[{"type":"strong"}]}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 7:关于项目咱们先聊这么多,出个题吧,怎么实现一个阻塞队列?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"网上解决办法一大堆,大家自行百度吧,需要额外注意的一个点是,如何提高其并发处理的能力(这点我没答上来,期待朋友们留言一起来探讨)"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 8:MySQL 熟悉吗?MySQL 事务是什么?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"ACID 准备下,时间不多了,直接略过,准备面试的朋友们记得准备一下哈。简单聊了下 读未提交、读已提交、重复读、序列化几种情况。需要额外再准备下业务中使用的事务隔离级别是怎么用的(我在项目中使用的 MySQL 不多,面试官也没有多问,主要是一个小时的面试时间快到了,哈哈哈)"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 9:知道 MySQL 的 MVCC 机制吗?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"平时基本不用 MySQL,这个没答出来,之后了解了下 InnoDB 大概是通过 undo log 和版本号机制来实现的(怪我没有充分准备就面试了,哈哈,自己活该)"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 9:JVM 的垃圾回收机制了解吗?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"标记-清楚算法、复制算法、标记-压缩算法、分代收集算法的实现原理。"}]},{"type":"heading","attrs":{"align":null,"level":3},"content":[{"type":"text","text":"面试官提问 10:项目中用的是 CMS 垃圾回收器吗?为什么要分为四个阶段?"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"初始标记,并发标记,重新标记,并发清理四阶段,系统要求快速响应低延迟,对于多核 CPU 性能更佳等方面去回答即可,网上文章很多,这里不多赘述了。"}]},{"type":"blockquote","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"总结"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"以上内容基本上就是这次面试遇到了问题了,基本上围绕这项目来问的,问题也不是很难,大部分问题在之前的文章了自己也都研究过,所以答起来就很轻松。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"希望通过本文能够对正在准备面试的朋友有所帮助,另外也希望不着急的朋友们平时好好打基础,面试的时候大概准备下基本上问题就不大了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"通过本次面试也知道自己对于 MySQL 这块比较鸡肋,下个系列开始搞 MySQL,继续查漏补缺,干就完了。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"往期精选"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"link","attrs":{"href":"http://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484512&idx=1&sn=7d8bad330ec0d65ddcd8c15f1d9756ed&chksm=e8eb7df4df9cf4e25fb9297e74416c0f98ef0381483259f1faa16447fa4dec0dda2e6a13f099&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Redis系列(八):缓存到底该如何做到高可用?"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"link","attrs":{"href":"http://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484500&idx=1&sn=d5440c36669bdb8dd8b2d66136cb1333&chksm=e8eb7dc0df9cf4d61d546a6faa4e278f73a51f368b8e903c757696591edb716fa00289808471&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Redis系列(七):缓存只是读写回种这么简单吗?如果是,那么请你一定看看这篇文章!"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"link","attrs":{"href":"http://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484078&idx=1&sn=3b0e754674804d61bde1df498f0bd092&chksm=e8eb7b3adf9cf22c370346b0eb2aa516f517daf4d0fa5977f41412d64f22cfe86f8eec90c58c&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Kafka系列10:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(下)"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"link","attrs":{"href":"http://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247483919&idx=1&sn=ee4c393dabadcecd51b34380425d227a&chksm=e8eb7b9bdf9cf28da20a8083d772d6744850256e7b338aa79225889c69f8395ab6019808d946&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Kafka系列第7篇:你必须要知道集群内部工作原理的一些事!"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":" "},{"type":"link","attrs":{"href":"http://mp.weixin.qq.com/s?__biz=MzIzNTIzNzYyNw==&mid=2247484476&idx=1&sn=9ac5d9fda3567e8a970a3608935a9fd9&chksm=e8eb7da8df9cf4be9df41dedde5d768ee3218d8ee9919422044ce7e4e60f3d44ce56a5470d73&scene=21#wechat_redirect","title":null},"content":[{"type":"text","text":"Redis系列(六):你说要看Redis线程模型?安排"}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章