這些面試題來自于我的老鄉(xiāng)讀者分享,很厲害,2年經(jīng)驗,面試幾個月拿下了N個Offer,包括滴滴、有贊和阿里這些一二線公司。
內(nèi)容完全來自讀者自己,引用部分為讀者自身回答描述,感謝分享。阿里的在最后部分。
酷樂家
- redis集群使用,宕機怎么處理
- mysql分庫分表,數(shù)據(jù)怎么做分片
- mysql索引了解和優(yōu)化經(jīng)歷
- Zk數(shù)據(jù)同步,崩潰恢復(fù)
- docker k8s常用打包命令
- docker和虛擬機的區(qū)別
- volatile和synchronize關(guān)鍵字
- hashMap特性
- Zk鎖之間的節(jié)點同步
兌吧科技
一面
業(yè)務(wù)中redis集群的使用
mysql索引,explain命令的結(jié)果
場景問題:生產(chǎn)日志每天打10個G,怎么防止日志打滿磁盤。
場景問題:設(shè)計不同用戶角色的菜單和功能權(quán)限。
-
本地內(nèi)存的了解。場景題:怎么實現(xiàn)更新所有集群中的機器中的本地內(nèi)存。
我回答了rocketMQ的廣播模式
二面
-
場景問題:大量的http請求怎么識別客戶的身份
根據(jù)IP和用戶行為做用戶標(biāo)簽。
和電信移動等營業(yè)商合作,根據(jù)手機號碼直接獲取用戶信息
-
日志區(qū)別生產(chǎn)和線上
標(biāo)志識別(時間戳或者ip)
reactor模型的了解,它和面向結(jié)構(gòu)編程的本質(zhì)區(qū)別
JVM的調(diào)優(yōu)經(jīng)歷和垃圾回收
synchronized鎖和concurrent包下面的常見工具類的了解。
場景問題:怎么設(shè)計一個高并發(fā)的應(yīng)用,從單體演變?yōu)榉植际较到y(tǒng)的過程。
同花順
一面
- 項目經(jīng)驗
- redis數(shù)據(jù)分片機制
- 看的書籍,介紹印象深刻的
- 用list手寫一個線程安全的隊列。
二面
介紹一下項目亮點,痛點和解決的過程。
怎么解決分布式事務(wù),用rocketmq是否存在消息丟失的場合,怎么做補償
業(yè)務(wù)中數(shù)據(jù)模型,設(shè)計的時候怎么抽象表結(jié)構(gòu)的。
分布式鎖對扣減庫存的性能影響,并發(fā)量大用樂觀鎖將壓力轉(zhuǎn)移到mysql是否合理
日常怎么處理微服務(wù)之間的鏈路追蹤,traceId和大數(shù)據(jù)日志采集的實現(xiàn)原理
redis的緩存穿透、擊穿、雪崩怎么處理,布隆過濾器
-
redis單線程效率高的原因
redis多路復(fù)用
netty的reactor模型
限流策略,sentinel的了解
在工作中的不足,怎么彌補?
順豐科技
一面
項目復(fù)雜度的體現(xiàn)和用到的設(shè)計模式,下游服務(wù)的認(rèn)知,訂單系統(tǒng)拆單邏輯。
分布式鎖,查庫存和扣減庫存原子性
分布式事務(wù),訂單和庫存的事務(wù)一致性
多個系統(tǒng)之間數(shù)據(jù)同步, 發(fā)布訂閱,初始化數(shù)據(jù),增量binglog同步。
-
增量數(shù)據(jù)除了binglog怎么同步?
通過version版本號,每次主動拉取更新數(shù)據(jù)查詢version比自己大的數(shù)據(jù),進(jìn)行更新。
Spring IOC,AOP
AOP是在什么時候加載的,容器怎么加載bean
Spring三級緩存怎么解決循環(huán)依賴
mybatis攔截器動態(tài)代理底層怎么找到XML,怎么執(zhí)行sql
-
快遞訂單中,有收件人和寄件人,怎么查詢某個用戶的快遞訂單(這個用戶有可能是收件人也可能是寄件人)
查詢:where 收件人=xx or 寄件人 =xx
用union 或者union all查詢,建立組合索引
敏捷開發(fā)的了解
最近看什么書,辭職理由
二面
項目架構(gòu)的描述、數(shù)據(jù)庫表結(jié)構(gòu)的設(shè)計
-
網(wǎng)關(guān)層怎么做限流
漏斗、令牌桶、滑動窗口(sentinel)
RMQ保證事務(wù)一致性
redis集群
-
算法:有一棵樹,每個節(jié)點可能有多個子節(jié)點,描述這種數(shù)據(jù)結(jié)構(gòu)并且遍歷
第一種思路:子節(jié)點屬性用集合描述:List<Node> childen;遞歸遍歷
第二種思路:當(dāng)作變形的二叉樹,左子樹是一個單一節(jié)點的部分,右子樹是一顆大樹,遍歷也要遞歸,復(fù)雜度很高。
有贊
一面
- 項目經(jīng)驗
- 垃圾回收算法,對CMS的了解
- 初始標(biāo)記和并發(fā)標(biāo)記的區(qū)別
- Spring相關(guān)
- redis MySQL RMQ
- 分庫分表的運用
- JVM鎖
- hashmap1.7和1.8的特效,1.8是否線程安全
- chm
- epoll poll select的區(qū)別 文件描述符
二面
- 業(yè)務(wù)場景
- redis分布式鎖
- 分布式事務(wù)
- rocketmq
烏鶇科技
一面
- sentinel結(jié)合dubbo做限流
- 怎么實現(xiàn)單例,怎么破壞單例
二面
- 線程池
- 類加載機制,分別加載了哪些對象
- tomcat加載了哪個類加載器
- jvm內(nèi)存模型
- 垃圾回收算法,CMS,三色標(biāo)記法
- JVM調(diào)優(yōu)
- 分布式ID生成算法
- 秒殺場景設(shè)計,解決超賣的設(shè)計
- MySQL索引設(shè)計,
select * from table where a=1,b= 1 and c>2 and d=3 order by e怎么索引建立 - redis分布式鎖怎么實現(xiàn)
阿里集團
一面
- 分布式鎖的多種設(shè)計
- mysql分庫分表
- 秒殺的設(shè)計
- DDD領(lǐng)域設(shè)計
- 分布式事務(wù)常見的解決方案
- redis集群
- hashMap、chm
- 事務(wù)的特性
二面
- 業(yè)務(wù)場景50分鐘,深挖業(yè)務(wù)的設(shè)計,數(shù)據(jù)庫模型的設(shè)計,設(shè)計的缺陷和替代的設(shè)計方案。
- mysql索引的優(yōu)化、隔離級別、mvcc、redo和binglog寫入時機,同步機制。
- JVM優(yōu)化經(jīng)歷
- rocketmq的深入
- volatile和synchronize
- dubbo的流程,對稱加密和非對稱加密、spi、負(fù)載均衡算法
- 算法leetcode隨機抽一題,不需要運算通過,基本不卡人
三面
純業(yè)務(wù)的理解和行業(yè)領(lǐng)域的認(rèn)識50分鐘
四面
項目的價值,在工作中的職責(zé),做了哪些事情
開源框架的了解,netty的了解,怎么實現(xiàn)一個聊天客戶端
-
設(shè)計一個rpc框架,dubbo怎么用線程實現(xiàn)同步調(diào)用,具體需要幾個線程
答不出
看的書籍,收獲、個人職業(yè)規(guī)劃等
總結(jié)
2年的話感覺問的東西不是很難,把你那些我要進(jìn)大廠的東西看一看,是一個知識概覽。然后大廠對于每個知識會問的比較深入,看的話要平時多看書,也可以看看極客時間的各個文章。
項目經(jīng)驗很重要,一般在各個中臺的核心業(yè)務(wù),例如交易 商品 營銷 支付,做過這些東西并且能總結(jié)出項目的內(nèi)容和難點大廠一般都要。
