- 自我介紹
- 手撕鏈表排序
- 操作系統
a. 線程和進程區別
b. 線程安全
c. 如何保證線程安全
d. 線程崩潰,會不會影響所在的進程
e. 什么是守護進程,僵尸進程,孤兒進程
f. 如何產生一個守護進程
g. 如何避免僵尸進程或者孤兒進程 - redis
a. 持久化方式有哪些,區別是什么
b. redis集群有了解么
c. redis zset() — 底層如何實現(哈希表+跳躍表) - 和大數據相關的操作
a. 請求有多少,數據有多少
b. Gbp/s - 負載均衡
a. nginx負載均衡策略或者方式
ⅰ. 輪詢
ⅱ. IP hash - 網絡模型
a. 網絡模型epoll和select(沒聽過)
ⅰ. 多路復用
ⅱ. 如何將多個請求,一塊發送給上游 - rabbitmq
a. 如何保證消息不丟失
b. 消費者如何保證不丟失消息和重復消費消息
ⅰ. 手動ack
c. 消費者幾種方式回復ACK
ⅰ. 同步,半同步,異步 - HTTP
a. 301和302
ⅰ. 301–
ⅱ. 302– - https
a. 如何建立安全連接的
b. 交換密鑰的過程是對稱還是非對稱(AES和RSA) - TCP
a. 三次握手
b. 四次揮手
c. 擁塞控制
ⅰ. 如此將窗口從小放大
ⅱ. 慢開始,快速回復 - 如何進行限流
a. redis時間窗口限流
b. gateway限流 - LRU算法–redis關于這種設計有幾種,
a. 權重;
b. 過期刪除 - TCP四次揮手
- time_wait, close_wait發生在客戶端還是服務端
a. 那一步產生這個狀態
b. 如果出現大量類似上述狀態,會出現什么問題? - session和cookie的區別
a. cookie–客戶端
b. session – 服務端 - 更底層的原理(up協議)
- a.log 每一行逗號分隔;找出第三個字段,每個字段出現的次數 shell
- 反問環節
a. 勝任這個崗位需要哪些能力
ⅰ. 后端開發能力
ⅱ. 數據計算能力(py sql)- 大數據處理的能力
- 加分項
ⅲ. 網絡,數據庫,操作系統,底層需要鞏固。
b. 日常工作內容是什么
ⅰ. mysql,redis
ⅱ. python
ⅲ. 數據量比較大,千億兆 - 數據處理
c. 面試流程
ⅰ. 1-2個月