一位朋友在2022年的真實經驗分享,他將文章投稿到了我這裡我拿來和大家分享一下。
年底向阿里和位元組投遞了簡歷,有幸都拿到了offer。可能是我運氣比較好,總的來說兩家公司的面試體檢都非常好,流程很快,面試官也都很專業。位元組是三輪技術面+一輪HR面,阿里是四輪技術面+一輪HR面。一些技術問題,這裡簡單羅列一下,不寫答案了。很多問題是回答以後再接著延伸問的,類似的問題在這邊我就直接給他合併了。
廢話就不說了,趁著還能想起一些東西來,記錄一下本次社招面試過程。還有一點,不管是阿里還是位元組,手寫演算法都是在他們提供的ide上寫的,沒有提示,不能編譯,只能寫完run。這個比較難受。
一面(約1.5h)
- 看你做過微服務拆分,你們的微服務拆分是按什麼原則拆分的?要是兩個領域之間互相依賴怎麼辦?
- 你負責的服務,流量最大的服務QPS大概有多少?做過限流嗎?限流原理了解嗎(令牌桶)
- 那使用令牌桶做限流的話,遇到流量突刺,例如你設定的QPS最高為1000,但是這1000個請求在第一個毫秒瞬間到達了怎麼辦?
- Redis使用場景(快取、鎖) 自己寫的鎖是怎麼寫的 setNx 寫入一個過期時間。然後問那事務還沒執行完鎖過期了怎麼辦?使用Redission,會有個看門狗自動續期。
- 請求的鑑權怎麼做,瞭解哪些鑑權協議(回答了JWT 和 OAuth2協議,亂七八糟地說了一下)
- 演算法題: 每K個元素,連結串列翻轉一次 (1, 2, 3, 4, 5, 6 k=2) -> 2 1 4 3 6 5
二面
約1h
- 怎麼保證日誌採集器的穩定性?(ECS用supervisor, K8S位元組寫了個monitor指令碼和自動重啟指令碼,和採集器容器一起打包成一個pod進行部署)
- 你對filebeat二次開發主要改了哪些東西?你剛剛說道filebeat僵死,所以你輸出一些定時日誌,然後再採集這個日誌,不會對業務方造成影響嗎?
- kafka 在你專案中的使用場景。訊息是有序的嗎?如果做到冪等性。瞭解Exactly once語義嗎?kafka是怎麼支援exactly once的語義的。消費延遲遇到過嗎,怎麼解決。
10.HTTP的一些問題,HTTPS的通訊加密過程。長連線,短連線。 - 也問了限流相關,然後做了一個場景設計題: 要發5萬塊錢的紅包,分成1k份。預計搶紅包的人有十億。主持人說三二一以後彈出搶紅包視窗。
- 還讓我寫了幾個sql,具體不太記得了 基本和 group by 有關係,問了一下having 和 where的區別
- 演算法題:括號匹配,返回是否是正常匹配 (()()((()))) -> true (())())(() -> false
三面
三面比較快,大約50min。聊的大多都是軟技能,很多問題不記得了。
- 你做的這個採集自動運維繫統怎麼去衡量實時性、穩定性和準確性這三個指標。瞭解過行業內其它公司的方案嗎?或者說別人能做到一個什麼樣的程度
- 怎麼做資源規劃,日常迭代的流程模式是怎麼樣的
- 讓我介紹一下公司的業務場景,盈利模式。以及做專案過程中是否會做使用者拜訪,設計圈 0 -> 1是怎麼做的,做了哪些事情,怎麼衡量結果。
- 演算法題:O(n)複雜度實現刪除連結串列倒數第k個元素
HR面
HR 面我都以為穩了,後來HR跟我說這也是一輪面試…… 所以,沒拿到offer都不能掉以輕心
- 為什麼離職
- 職業規劃
- 聊入職意向,是傾向於做業務還是深入做技術
- 原來的公司哪裡吸引我,讓我可以呆4年
- 對work life balance 怎麼看
一面
大約1個小時
- 為什麼要實時採集和離線採集,分別用於什麼場景。然後,基於這個問題往下問了很多(對方對這個領域非常瞭解)。不過,基本都是圍繞,我如何解決xxx問題來展開,所以聊得很順利。問過相關元件大概是:flink, es, kafka,zk 還有就是資料量,這個量級的資料量處理大約需要多少資源。問了一些具體的問題。
- 聊了一下IO模型,page cache, 網路IO。如何做日誌不落盤,我回答了目前在嘗試flumeAppender,然後問了幾個關於flumeAppender的弊端怎麼解決。Linux 使用者態檔案系統是否瞭解
- 演算法題: 兩個字串a, b 是否能按順序打散後組成c (abc, def) -> abdcef true
二面
大約1個小時
- 也是聊採集的專案,對filebeat有哪些改動,改完以後如何確保對其它模組沒有影響(可能是因為我面的部門,入職後也會做這個相關,問得很細)
- mysql分庫分表的場景和問題,平時怎麼用的
- 是否對現在雲原生的技術有了解,OpenTelemetry 是否瞭解。
- 平時Elastic Search使用場景,如果做資料同步。ES準實時性問題。
- Restful API和普通API的區別,公司內部的SOA怎麼實現的。
- 演算法題: 給一個有序陣列,找出第一個比k大的數字的下標。 要求自己寫測試用例(感覺也是考察的一環,邊界條件一定要想清楚)
三面
三面面試官感覺好像很忙,問題一個接一個問得非常快,沒做演算法題。整體面試時間在50分鐘左右
- 接手一個新專案,不瞭解的情況下,如何避免出問題。(這個當時感覺沒答到點子上,只說了要分支測試要充分啥的。面完以後想想,應該包括效能測試、灰度部署、以及可觀測性監控這些點。)
- 怎麼解決Redis 熱key。 我只回答了本地快取、Redis叢集水平擴容。但是面試官對這兩個答案不夠滿意,讓我考慮本地快取被擊穿,就是經常有大量請求打到Redis的場景。叢集擴容太重 ,問我有沒有其它方案。
- 也讓我寫了幾個 SQL,但是感覺也都不太複雜
- 其實三面問了挺多問題,但是他問得很快,我那天又很懵。狀態很差,記不清楚了(前一天在公司通宵了,第二天又失眠了。差不多四十多小時沒睡在面試……)
HR面
30min左右
四面面試官休假了,就直接先HR面了。和位元組差不多的問題,不過因為他們知道我在面位元組。還問了一下,我自己的傾向性。這裡我比較坦誠,直接說了傾向於阿里的中後臺崗位。所以後面給的評級待遇啥的,他們應該就是卡著位元組給。
四面
40min左右
四面本來很緊張,因為了解到是個級別非常高的大佬。不過,這面反倒最簡單,就是聊聊天。話題主要有:原公司的業務模式,盈利模式,技術團隊規模,伺服器規模等,聊一些價值觀念。離職原因,對跳槽的看法,對加班的看法。對轉崗活水的看法。對新技術是否有跟蹤,平時會做哪方面的積累。反正很泛。
感覺這一面主要考察一個人的價值觀,和邏輯思維能力,說話得有條理。這個我沒做好,東拉西扯的。
看完如果有幫助,希望可以給個 三連 ,你的鼓勵就是我不斷前進的動力。謝謝
關注我:私信獲取Java高階架構資料、大廠面試試題、影片
也歡迎朋友們積極投稿和大家分享你的面試經歷