記一次騰訊雲(西安)後臺開發面試經歷

{"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}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章