位元組跳動 騰訊後台開發面經分享 2019 5

2021-09-24 04:53:40 字數 2964 閱讀 2006

問題1: 請詳細描述三次握手和四次揮手的過程

要求熟悉三次握手和四次揮手的機制,要求畫出狀態圖。

問題2: 四次揮手中time_wait狀態存在的目的是什麼?

這個問題是畫出四次揮手狀態圖,會引申問你。不排除還會問為什麼四次揮手是四次不是二次等問題。最好是把相關問題均掌握。

問題3: tcp是通過什麼機制保障可靠性的?

從四個方面進行回答,ack確認機制、超時重傳、滑動視窗以及流量控制,深入的話要求詳細講出流量控制的機制。

1.1.2 語言的相關基礎知識

位元組跳動的技術棧是go和python,會問一下相關語言的基礎。

問題1: 描述執行緒、程序以及協程的區別?

描述執行緒、程序以及協程的定義和區別,順便描述python語言中三者的使用。

問題2: go語言中的協程與python中的協程的區別?

主要講解go中gmp機制。

1.1.3 網路程式設計相關基礎

問題1: 網路io模型有哪些?

5種網路i/o模型,阻塞、非阻塞、i/o多路復用、訊號驅動io、非同步i/o。從資料從i/o裝置到核心態,核心態到程序使用者態分別描述這5種的區別。

問題2: i/o多路復用中select/poll/epoll的區別?

從select的機制,以及select的三個缺點,講解epoll機制,以及epoll是如何解決select的三個缺點的。還會講到epoll中水平觸發和邊沿觸發的區別。

1.1.4 http相關基礎

問題1: 客戶端訪問url到伺服器,整個過程會經歷哪些?

從七層網路模型,http->tcp->ip->鏈路整個過程講解報文的產生以及傳遞的過程

問題2: 描述https和http的區別

從埠的區別,以及https是在ssl的基礎上以及加密等方面說明

問題3: http協議的請求報文和響應報文格式

要非常清楚請求報文和響應報文的組成部分,要求在寫具體案例。

問題4: http的狀態碼有哪些?

從2xx,3xx,4xx,5xx分別舉例出常見的code,面試官會問301和302的區別,以及500/503/504分別在哪些場景出現。

1.1.5 快取和資料庫的基礎知識

問題1: 描述一下redis有哪些資料結構。

基礎的資料結構有5種,string/list/hash/set/zset,還答了高階資料結構hyperloglog/bitmap/bloomfilter/geohash。面試官還問了bloomfilter的原理以及zset的實現原理,主要講解跳躍表。

問題2: mysql場景題目

面試官提供場景,要求寫出查詢sql,考察聯合語句,如何分頁以及複雜語句的優化。

1.1.6 裸寫演算法

樹的非遞迴先序遍歷。

1.2. 第二面

1.2.1 專案經驗

第二面跟個人專案經驗很大,面試官會要求先詳細介紹最近的專案,介紹專案的同時會打斷你,延伸專案的難度和架構,要求提出更優的解決方案。

之前專案經驗裡寫了乙個分布式的專案,面試官著重討論了這個專案的實現方案,引申出分布式事務以及分布式一致性等問題,同時會要求在當前專案的基礎上附加條件,要求你提供解決方案,這部分比較難,要求對專案的深度理解很透徹,面試前一定要對專案了解非常清楚,如果是多人合作的專案,最好也要了解別人編寫的功能部分。

還問了一些api業務的架構問題,負載均衡、cdn、dns等問題。以及也問到了http相關問題,要求描述http的版本之間的區別,主要是1.0/1.1/2.0三個版本的區別。詳細說了1.0與1.1之間是連線模型的區別(短連線、長連線、管線化),1.1與2.0之間的區別是i/o多路復用的單一長連線、伺服器推送、二進位制分楨、首部壓縮等。

1.2.2 裸寫演算法

回行矩陣遍歷

二叉樹多個節點的最近公共祖先

之前有微服務經驗,面試官就詳細問到微服務的架構、框架的實現、服務治理、分布式一致性等問題。

之前有玩過日誌監控系統,首先還是考察架構,elk的相關知識,重點描述elasticsearch的一些架構原理,比如倒排索引的原理。

問訊息佇列的相關知識,接觸過kafka,問了kafka中訊息可以被多個消費者消費嗎?;以及選舉機制和hw機制。

開放性問題,講乙個之前遇到的問題,並如何解決的。這個描述生產過程中執行的問題,並描述排查問題。

資料庫和redis相關問題,資料庫考察索引的原理以及幾種事務的區別。redis問資料結構,延時佇列如何實現,分布式鎖原理。

2.2 第二面 筆試

現場面試,考察具體崗位的技術棧語言的基礎知識,題目不難,要求基礎紮實和廣度。

2.3 第三面、第四面

第三面和第四面是組長和總監面試,聊解題思路和專案,這二面的特點是根據專案經驗問相關的問題,要求廣度,尤其考察架構廣度,會將目前的專案量級擴大幾十倍,重新設計架構,同時涉及到一些壓力面試。

感覺如果不緊張,熟悉專案的話,問題不大。

會有很多開放性題目,包括平時遇到問題的解題思路、同事之間的協作等。

被問到的知識點有負載均衡演算法,ngnix如何做限流,四層lvs和七層ngnix的區別,以及微服務架構的設計思路。

面試時間均在20-30分鐘。

2.4 第五面、第六面 技術委員會面試

第五面和第六面是面委,技術面試,難度非常大。

考察系統設計和架構設計。要求知識的深度理解

主要是系統設計,問了秒殺系統的如何設計,分接入層、介面層、訊息佇列層、邏輯層四個方面講解,接入層可以做服務治理相關事情,介面層做搶購開關、黑白名單、隨機拒絕等處理,邏輯層具體搶購邏輯實現,涉及到redis分布式鎖以及db和redis的一致性問題。

從秒殺系統還引申出分布式事務的幾種實現,二段式、三段式、補償型(tcc)、基於可靠訊息服務的訊息佇列實現。重點討論了這幾種的實現和區別,要求畫出基於可靠訊息服務的訊息佇列實現分布式事務的架構圖,以及上游服務和下游服務如何保證訊息可靠性和一致性。

考察微服務架構,服務拆分的原則、rpc框架原理、配置管理(etcd)的一致性協議raft選舉原理。

考察服務治理,服務限流演算法,服務降級的指標和恢復指標,服務熔斷。

開放性問題,遇到印象最深的問題,以及如何解決的。

位元組跳動後端開發 面經 涼經

面試的是c 開發,很早開了牛客網進入了直播間。面試約的14點,我提前了十分鐘進去掛著。到準點了面試官還沒到.過了大概五分鐘,面試官進來了。然後就說遲到了,因為牛客需要裝置檢查,大概14 07的時候面試才開始 有點生氣 問題 首先是自我介紹,我是balabala,講了一些事蹟。最後一段提前寫了一下自己...

位元組跳動 騰訊後台開發分享面試經歷 整理

1.位元組跳動 1.1 第一面 第一面主要考察基礎,先簡單自我介紹,以及介紹一下專案,然後開始考察基礎。1.1.1 tcp相關基礎知識 1.問題1 請詳細描述三次握手和四次揮手的過程 要求熟悉三次握手和四次揮手的機制,要求畫出狀態圖。2.問題2 四次揮手中time wait狀態存在的目的是什麼?這個...

位元組跳動 AI lab後端開發 面試 涼經)

3.7號投的簡歷,3.8hr 談面試 約3.14 5點 一面 50min 1.首先你的簡歷上面寫了兩個小專案,來說一下你認為最貼近後端開發這個的那個專案。複習了,詳細講了,也沒有問問題 2.你是乙個 acmer,談一談acm,然後談到工作室負責人,負責做什麼 我是topcoder總負責人 3.開始進...