3年經驗面試題彙總 自我解答(每天更新一點)

2021-10-06 16:32:22 字數 1393 閱讀 5404

同步:

1 rest http協議

2 rpc tcp協議

非同步:字典項 、選單配置、系統引數、登入token、session

高效能對於乙個請求,耗時幾百毫秒查出乙個結果,然後這個操作員就用了一次,這很浪費。

而同乙個不經常改變的結果,從快取取,只需要幾毫秒。

高併發redis官方測評資料,每秒10w左右的讀寫,而mysql遠遠達不到這個數量。

快取與資料庫雙寫不一致問題

如何保證快取與資料庫的雙寫一致性。

1 讀請求和寫請求序列化,串到乙個記憶體佇列裡去。(序列可以解決不一致情況,但是會導致系統吞吐量降低,用比正常多幾倍的機器去支撐線上的乙個請求)

2 cache aside pattern

最經典的快取+資料庫讀寫的模式。

單一表的資料量太大,達到幾百萬的時候,sql執行效能就會變差,這個時候就需要把乙個表的資料拆到多個表中。

以一般經驗來看,乙個資料庫最多支撐2000併發,就需要擴容,這個時候把乙個資料庫的資料拆分到多個多個庫中,承受的併發將提高多倍

dds 華為自研

沒有開源,這個就不多說了

sharding-jdbc

當當網開源的,屬於client層方案,支援分庫分表,讀寫分離,分布式id生成,柔性事務

mycat

是阿里的cobar改良而來,屬於proxy層方案

首先,mycat和sharding-jdbc這兩種中介軟體,我並沒有用過

根據網上的回答,整理一下

shardingjdbc:

優點在於不用部署,運維成本低,不需要**層的二次**請求,效能高,缺點在於耦合,如果遇到公升級,各個系統都需要重新公升級再發布,各個系統都耦合sharding-jdbc的依賴

mycat

這種proxy層的缺點在於需要部署,自己運維一套中介軟體,運維成本高,好處是對於各個專案是透明的,如果遇到公升級,自己中介軟體那裡搞就行

水平拆分和垂直拆分同時用。

首先使用垂直拆分,化為兩個模組,乙個是基本不變的公共資源庫,裡面存放選單 字典 系統引數之類的資料

然後把第一次水平拆分稱為一級分庫,根據新政區劃這個字段,把全國的資料劃分為幾部分,然後放到不同的庫里。

但是有的進行一級分庫之後,從省份來看,有的省份的資料依然是大的,這個時候就進行二級分庫,也就是把省裡的資料進行第二次水平拆分。我們制定乙個二級分庫字段,進行hash一下均勻分散,這樣可以平均分配每個庫的資料量和請求壓力

需求分析

設計文件(powerdesigner設計好資料模型,然後建表,分析需要多少個類,先起好名字)

詳設文件(後端介面開發,先提前寫好偽**,精確到對應entity和三層結構)

編碼開發(補充詳細邏輯,完成後端介面開發,本地postman自測,然後再開發前台)

showcase

測試改bug

前端經典面試題a 和 a 總結及自我解答(1)

1.如果 a 1 b a a 1 a a a a a 並且這時候a 解答 先說 a 首先求a 有乙個極簡單的方法,個人總結啊 把 a 和 a 看成是同一種特殊型別的東西,有幾個這種特殊型別的東西,則初始值就加上幾個1 看一看一共有6個 a或a 這樣的特殊型別,則a 1 6 7 至於求和,a就是正常中...

Unity3D面試題彙總

1.請描述遊戲動畫有哪幾種,以及其原理。2.alpha blend 工作原理 3.寫光照計算中的diffuse的計算公式 4.lod是什麼,優缺點是什麼 5.兩種陰影判斷的方法工作原理 6.mipmap是什麼?作用?7.用u3d實現2d遊戲,有幾種方式?答 一種用ui實現 gui,ngui.一種是採...

Unity3D面試題彙總

1.請描述遊戲動畫有哪幾種,以及其原理。2.alpha blend 工作原理 3.寫光照計算中的diffuse的計算公式 4.lod是什麼,優缺點是什麼 5.兩種陰影判斷的方法工作原理 6.mipmap是什麼?作用?7.用u3d實現2d遊戲,有幾種方式?答 一種用ui實現 gui,ngui.一種是採...