記一次騰訊云(西安)后臺(tái)開發(fā)面試經(jīng)歷

作者:z小趙
★?一枚用心堅(jiān)持寫原創(chuàng)的“無趣”程序猿,在自身受益的同時(shí)也讓朋友們?cè)诩夹g(shù)上有所提升。
各位讀者朋友們還好嗎?是不是覺著有一段時(shí)間沒有看到我的新文章了?本篇文章總結(jié)一下最近發(fā)生的事情,主要有兩方面:
其一:最近這段時(shí)間因?yàn)楣窘M織架構(gòu)的調(diào)整,身邊朋友走了挺多,內(nèi)心躁動(dòng)的我也有些不太安分了。
其二:女朋友在西安的工作確定了下來,加之房子也在西安,所以就萌生了回西安的想法。
接下來就心儀公司的選擇和面試經(jīng)歷做一些簡單總結(jié)。希望對(duì)朋友們找工作,尤其是在西安準(zhǔn)備嘗試騰訊云的朋友們有所幫助。
西安好找工作嗎?
答案是取決于你想去一個(gè)什么樣的企業(yè)。自畢業(yè)以后一直覺得西安互聯(lián)網(wǎng)環(huán)境應(yīng)該還不錯(cuò),有華為、中興、360、京東等等一些不錯(cuò)的國內(nèi)的大廠,也有一些如 Thouhtworks 等等不錯(cuò)的外企。但是最近和獵頭朋友交流以后發(fā)現(xiàn),在西安想找到一個(gè)自己稱心如意的崗位,難度相對(duì)來說還是有些大的,下面是一些獵頭朋友反饋的目前西安的情況。

我對(duì)于這個(gè)回復(fù)還是持有一些疑問的,于是自己親自逛了 Boss 直聘,發(fā)現(xiàn)情況基本上確實(shí)差不多。造成這種現(xiàn)象我認(rèn)為基本上有兩點(diǎn),其一是自己對(duì)于市場(chǎng)的期望值過高(可能因?yàn)樵谝痪€城市待習(xí)慣了),其二是相對(duì)可選擇的空間還是比較少。
對(duì)市場(chǎng)有了一些了解之后,最后選擇去試試騰訊云西安的崗位,我選擇的是 Java 開發(fā),偏向于高并發(fā)、分布式相關(guān)的工作,下面是面試過程中面試官提問的一些問題,希望能夠?qū)φ谖靼舱夜ぷ骰蛘哂刑巯敕ǖ呐笥延兴鶐椭?/p>
面試涉及題目及答案
面試官提問 1:自我介紹及項(xiàng)目經(jīng)歷
關(guān)于這道題,每個(gè)人的項(xiàng)目經(jīng)歷都不太一樣,所以各位朋友根據(jù)自己的實(shí)際情況來介紹吧,在這里就不多介紹了。
面試官提問 2:看你項(xiàng)目介紹中大量使用了 Redis,那能不能介紹下 Redis 的主從同步機(jī)制呢?
關(guān)于這道題,因?yàn)槲以谥暗奈恼乱卜治鲞^ Redis 主從同步的機(jī)制,所以我從 完整重同步 和 部分重同步 兩個(gè)階段去分析的,結(jié)果也得到了面試官的認(rèn)可。詳細(xì)的完整重同步和部分重同步機(jī)制原理是什么樣的,在這里就不展開介紹了,附上鏈接朋友們自行查看吧。主從同步原理,點(diǎn)擊查看
面試官提問 3:你們項(xiàng)目中 Redis 的內(nèi)存使用和過期數(shù)據(jù)是怎么做的?
這是兩道題,先來說說內(nèi)存是怎么設(shè)計(jì)的,首先我們是按照業(yè)務(wù)維度去評(píng)估資源內(nèi)存的使用量和 QPS 兩個(gè)維度去評(píng)估 Redis 該部署多少資源,然后提到了業(yè)務(wù)中 Redis 的部署方式及原因。然后在聊到過期數(shù)據(jù)的剔除策略,這些在之前的文章也有介紹過,附上鏈接朋友們自行查看吧。緩存過期剔除策略
面試官提問 4:看你在實(shí)際項(xiàng)目中使用 Streaming 做了一些實(shí)時(shí)推薦的項(xiàng)目,能介紹下嗎?
我們的部分實(shí)時(shí)推薦項(xiàng)目使用的是 Steaming,其通過對(duì) Kafka 的 Consumer 進(jìn)行了二次開發(fā)封裝,屏蔽了 Kafka 不同版本對(duì)于業(yè)務(wù)的影響,同時(shí)也可以用 Steaming 去對(duì)接不同的數(shù)據(jù)源,比如現(xiàn)在也支持 xx 數(shù)據(jù)源的消費(fèi)(因?yàn)闃I(yè)務(wù)比較那啥,在這里就不說明了)
面試官提問 5:既然使用了 Kafka,你知道為什么 Kafka 那么快嗎?
這道題之前在 Kafka 常見面試題中有提到過,這里需要補(bǔ)充一點(diǎn)是,Kafka 的“零拷貝”機(jī)制需要朋友在深入研究下,在之前的文章里面沒有深入解釋過這個(gè)點(diǎn),剩余的其他方面附上鏈接朋友們自行查看吧。Kafka 為什么那么快
面試官提問 6:使用 Kafka 有遇到過重復(fù)消費(fèi)的情況嗎?你們是怎么解決的?
有遇到過,這里補(bǔ)充一點(diǎn),因?yàn)闃I(yè)務(wù)形態(tài)所決定消息重復(fù)消費(fèi)產(chǎn)生的影響不是特別嚴(yán)重,所以在一定程度上可以暫時(shí)接受,后續(xù)通過一些手段去解決了,解決辦法之前介紹過如何處理,懶得在這里繼續(xù)重復(fù)了,直接看鏈接吧。Kafka 重復(fù)消費(fèi)怎么辦
面試官提問 7:關(guān)于項(xiàng)目咱們先聊這么多,出個(gè)題吧,怎么實(shí)現(xiàn)一個(gè)阻塞隊(duì)列?
網(wǎng)上解決辦法一大堆,大家自行百度吧,需要額外注意的一個(gè)點(diǎn)是,如何提高其并發(fā)處理的能力(這點(diǎn)我沒答上來,期待朋友們留言一起來探討)
面試官提問 8:MySQL 熟悉嗎?MySQL 事務(wù)是什么?
ACID 準(zhǔn)備下,時(shí)間不多了,直接略過,準(zhǔn)備面試的朋友們記得準(zhǔn)備一下哈。簡單聊了下 讀未提交、讀已提交、重復(fù)讀、序列化幾種情況。需要額外再準(zhǔn)備下業(yè)務(wù)中使用的事務(wù)隔離級(jí)別是怎么用的(我在項(xiàng)目中使用的 MySQL 不多,面試官也沒有多問,主要是一個(gè)小時(shí)的面試時(shí)間快到了,哈哈哈)
面試官提問 9:知道 MySQL 的 MVCC 機(jī)制嗎?
平時(shí)基本不用 MySQL,這個(gè)沒答出來,之后了解了下 InnoDB 大概是通過 undo log 和版本號(hào)機(jī)制來實(shí)現(xiàn)的(怪我沒有充分準(zhǔn)備就面試了,哈哈,自己活該)
面試官提問 9:JVM 的垃圾回收機(jī)制了解嗎?
標(biāo)記-清楚算法、復(fù)制算法、標(biāo)記-壓縮算法、分代收集算法的實(shí)現(xiàn)原理。
面試官提問 10:項(xiàng)目中用的是 CMS 垃圾回收器嗎?為什么要分為四個(gè)階段?
初始標(biāo)記,并發(fā)標(biāo)記,重新標(biāo)記,并發(fā)清理四階段,系統(tǒng)要求快速響應(yīng)低延遲,對(duì)于多核 CPU 性能更佳等方面去回答即可,網(wǎng)上文章很多,這里不多贅述了。
總結(jié)
以上內(nèi)容基本上就是這次面試遇到了問題了,基本上圍繞這項(xiàng)目來問的,問題也不是很難,大部分問題在之前的文章了自己也都研究過,所以答起來就很輕松。
希望通過本文能夠?qū)φ跍?zhǔn)備面試的朋友有所幫助,另外也希望不著急的朋友們平時(shí)好好打基礎(chǔ),面試的時(shí)候大概準(zhǔn)備下基本上問題就不大了。
通過本次面試也知道自己對(duì)于 MySQL 這塊比較雞肋,下個(gè)系列開始搞 MySQL,繼續(xù)查漏補(bǔ)缺,干就完了。覺得內(nèi)容對(duì)你有幫助的話請(qǐng)多多轉(zhuǎn)發(fā)支持一下我唄。

1.?人人都能看懂的 6 種限流實(shí)現(xiàn)方案!
3.?大型網(wǎng)站架構(gòu)演化發(fā)展歷程
7. 程序員必知的 89 個(gè)操作系統(tǒng)核心概念
8. 深入理解 MySQL:快速學(xué)會(huì)分析SQL執(zhí)行效率
10. Spring Boot 面試,一個(gè)問題就干趴下了!

掃碼二維碼關(guān)注我
·end·
—如果本文有幫助,請(qǐng)分享到朋友圈吧—
我們一起愉快的玩耍!

