聯(lián)通在線Java社招面經(jīng)
2024.9.27 安排了三個人面試,面完之后沒結(jié)果
- 項目介紹
- 項目提問:8千萬數(shù)據(jù)都存Redis嗎,Redis和MySQL的數(shù)據(jù)有什么關(guān)系,Redis冗余存儲三份是什么考慮,數(shù)據(jù)寫入時MySQL和Redis是完全一致的嗎(時效性影響,不能完全一致)。Redis掛了降級MySQL,1W QPS直接穿透到數(shù)據(jù)庫有什么問題?怎么避免打垮數(shù)據(jù)庫。
- 地理位置計算過程都是MySQL做的嗎?性能怎么樣
- Redis架構(gòu)這塊,16個節(jié)點,S2編碼怎么算的?你這個項目最大的難點是什么?(總結(jié)。。。)
- 其他有業(yè)務(wù)比較復(fù)雜的項目說說嘛
- 緩存穿透的問題,流量都請求MySQL時,有什么解決方案?(布隆過濾器,限流,快速失敗,本地緩存)
- 有什么好的方案解決Redis掛了的問題?(容災(zāi),多活,Redis數(shù)據(jù)持久化,多級緩存,監(jiān)控告警)
- 多級緩存的方案說一下,實際項目里怎么用的?
- AOI內(nèi)存RTree的數(shù)據(jù)是一啟動就加載,F(xiàn)ull GC后數(shù)據(jù)就沒了?為什么不能直接在原來的數(shù)據(jù)結(jié)構(gòu)上更新,需要重新構(gòu)建一份數(shù)據(jù)。
- Redis對應(yīng)的持久化存儲是MySQL嗎,MySQL什么時候查?
- 應(yīng)用維度降級是什么?
- 設(shè)計題:怎么用zk實現(xiàn)分布式鎖?Redis怎么實現(xiàn)?Redis設(shè)置分布式鎖的過期時間怎么設(shè)置合理?(業(yè)務(wù)操作耗時的1.5倍/2倍)
- 如果鎖的過期時間設(shè)置過短,達(dá)不到效果,怎么解決?(動態(tài)調(diào)整過期時間,鎖續(xù)期機(jī)制,業(yè)務(wù)容忍度)
- 系統(tǒng)了解內(nèi)部RPC框架,統(tǒng)一打印系統(tǒng)日志,在RPC框架上應(yīng)該怎么實現(xiàn),包括出參、入?yún)ⅰ⒑臅r這些內(nèi)容。(攔截器、日志記錄器、收集入?yún)⒊鰠ⅲ瑴y量耗時,設(shè)計日志格式)
- 鷹眼怎么配置的監(jiān)控的?
- 普通的Web應(yīng)用,所有Controller對外的接口的耗時打印出來,這種應(yīng)該怎么做?(AOP)
- AOP能攔截到出參嗎?
- 現(xiàn)在在國企主要做什么工作?開發(fā)的多嗎,掃主機(jī)是部署Agent嗎?這個Agent是長時間運(yùn)行還是運(yùn)行一次的
- 主鏈路上,如何做接口的優(yōu)化,比如從500ms優(yōu)化到300ms,可以從哪些方面做?(數(shù)據(jù)庫、代碼、緩存、網(wǎng)絡(luò)、多線程、業(yè)務(wù)邏輯優(yōu)化)
- 服務(wù)的瓶頸怎么查呢?內(nèi)部的瓶頸?
- 整個鏈路的耗時怎么排查呢?單個服務(wù)怎么排查?(打印內(nèi)部耗時情況)
- 已經(jīng)知道服務(wù)內(nèi)部耗時大了,怎么去優(yōu)化呢?(串行改并行、數(shù)據(jù)結(jié)構(gòu)優(yōu)化、減少冗余計算、善用緩存、IO優(yōu)化、同步改異步)
- 之前對C端的接口有做過優(yōu)化嗎,具體是什么
- 服務(wù)部了多少,服務(wù)拆分,整個鏈路是什么樣的,服務(wù)實例部署是什么樣的?
- 服務(wù)間是怎么調(diào)用的?注冊發(fā)現(xiàn)?
- 服務(wù)發(fā)布升級的時候,對數(shù)據(jù)加載的過程有沒有做優(yōu)化工作,內(nèi)存RTree的數(shù)據(jù)變更是怎么做的?
- 數(shù)據(jù)有8千萬,同步到Redis,數(shù)據(jù)替換的方式是什么樣的?每個版本的數(shù)據(jù)占用多大內(nèi)存?
- 現(xiàn)在工作中開發(fā)時間占比多少
- 反問:做項目還是做產(chǎn)品