面試官的連環(huán)炮,你又能撐多少?(中)
本內(nèi)容來(lái)源于 16 年畢業(yè)的學(xué)長(zhǎng),先在 58,后阿里,如今準(zhǔn)備跳槽了,以下內(nèi)容為他的最近面試經(jīng)歷,連載分為(上)(中)(下),關(guān)注公眾號(hào)看后續(xù)內(nèi)容。
一篇面試連環(huán)炮整體講述了面試官會(huì)問(wèn)的java基礎(chǔ)和高級(jí)相關(guān)的知識(shí)點(diǎn)以及一些數(shù)據(jù)庫(kù)和緩存相關(guān)的理論和實(shí)踐,包括消息隊(duì)列。發(fā)到各個(gè)技術(shù)群里引起了廣泛的討論,也支持我去繼續(xù)寫剩下的兩篇文章。本篇將從項(xiàng)目實(shí)戰(zhàn)的角度去看面試官會(huì)從哪些方面去考察應(yīng)聘者的知識(shí)深度和廣度。
一、業(yè)務(wù)中間件&組件連環(huán)炮
Tomcat
項(xiàng)目部署用的是什么容器啟動(dòng)的? 說(shuō)一下tomcat的架構(gòu)模型? 說(shuō)一下Tomcat的線程模型?底層原理是什么? 跟Netty的線程模型相比有什么區(qū)別? 做過(guò)Tomcat的調(diào)優(yōu)嗎? 你們服務(wù)部署的時(shí)候Tomcat的線程數(shù)怎么設(shè)置的? 依據(jù)是什么?假如要做分布式的session管理的話怎么配置tomcat的參數(shù)? tomcat的分布式session實(shí)現(xiàn)方案有什么缺點(diǎn)?你了解其他分布式session的方案嗎?
Netty
Netty了解嗎?用在什么地方?說(shuō)一下 Netty的線程模型? 說(shuō)一下Netty NIO 相對(duì)于jdk NIO有什么優(yōu)勢(shì)? 解決了JDK NIO的什么問(wèn)題呢? Netty是如何解決粘包和拆包的問(wèn)題的??什么是零拷貝技術(shù)? Netty中的零拷貝技術(shù)怎么實(shí)現(xiàn)的? Netty是如何管理堆外內(nèi)存的? 遇到過(guò)netty堆外內(nèi)存泄漏的問(wèn)題嗎?怎么排查并解決的? 說(shuō)一下Linux中的IO模型有哪些? IO 多路復(fù)用是怎么實(shí)現(xiàn)的? 畫一下Linux底層中關(guān)于零拷貝技術(shù)的流程圖?
單點(diǎn)登錄系統(tǒng)
什么是單點(diǎn)登錄系統(tǒng)? 畫一下你維護(hù)的這個(gè)單點(diǎn)登錄的系統(tǒng)架構(gòu)圖? 講講登錄流程,如何設(shè)置cookie和獲取Token的? 這個(gè)是分布式的嗎?支持跨域嗎?不支持的話需要怎么解決呢?了解過(guò)市面上標(biāo)準(zhǔn)的CAS單點(diǎn)登錄方案嗎?
elasticsearch
es有用過(guò)嗎?說(shuō)一下es的索引原理? 說(shuō)一下es的查詢數(shù)據(jù)的過(guò)程? 假如es數(shù)據(jù)量越來(lái)越多,有些分頁(yè)查詢的場(chǎng)景越來(lái)越慢怎么解決? mysql到es的數(shù)據(jù)同步怎么做的? 通過(guò)binlog的方式有什么優(yōu)缺點(diǎn)?還有別的方式嗎?
zookeeper
zk用過(guò)嗎? 說(shuō)一下你用zk的一些場(chǎng)景? 了解zk的原理嗎? zk有哪些節(jié)點(diǎn)類型? zk的分布式鎖怎么實(shí)現(xiàn)的? 假如要實(shí)現(xiàn)公平鎖怎么做?假如master掛了,此時(shí)需要選舉,說(shuō)一下zk的選舉過(guò)程,涉及到哪些角色的轉(zhuǎn)換?選舉為master的依賴條件是什么? 說(shuō)一下zk新加節(jié)點(diǎn)和減少節(jié)點(diǎn)的過(guò)程?是否會(huì)影響zk服務(wù)的可用性? zk在CAP模型中滿足了哪兩個(gè)特性?為什么?
nacos
分布式配置服務(wù)用過(guò)哪些?怎么用的?灰度發(fā) 布的同時(shí)去發(fā)布配置是否有問(wèn)題? 客戶端如何感知配置服務(wù)發(fā)生變化的? 配置數(shù)據(jù)是怎么存的? 說(shuō)說(shuō)diamond的架構(gòu)設(shè)計(jì)? 說(shuō)說(shuō)diamond的多級(jí)緩存機(jī)制? diamond是如何保證客戶端獲取數(shù)據(jù)的一致性的? 假如我配置要發(fā)布到多個(gè)物理單元中diamond的數(shù)據(jù)庫(kù)設(shè)計(jì)怎么是怎么弄?數(shù)據(jù)同步是怎么做的? 說(shuō)說(shuō)你為什么不用eruake或者consule去做服務(wù)發(fā)現(xiàn)和配置管理呢 ?nacos有什么優(yōu)勢(shì)?nacos源碼看過(guò)嗎?有沒(méi)有學(xué)到些什么?
mongodb
mongodb用過(guò)嗎?特點(diǎn)是什么? 跟MySQL比有什么特點(diǎn)?適用場(chǎng)景是什么?
Mybatis
項(xiàng)目中有用到Mybatis嗎 ?說(shuō)一下Mybatis的啟動(dòng)過(guò)程? 說(shuō)一下Mybatis是怎么集成spring的? 說(shuō)一下Mybatis集成spring的時(shí)候提供了哪些基于spring的功能? 說(shuō)一下Mybatis中你比較熟悉的幾個(gè)類?這些類的源碼看過(guò)嗎? Mybatis源碼中有沒(méi)有哪些源碼的實(shí)現(xiàn)令你印象深刻? 假如我項(xiàng)目中通過(guò)service層調(diào)用了mybatis的方法,這個(gè)調(diào)用過(guò)程了解嗎? Mybatis的動(dòng)態(tài)sql用過(guò)嗎?怎么用的? Mybatis的分頁(yè)插件用過(guò)嗎?實(shí)現(xiàn)原理是什么?
二、spring 全家桶連環(huán)炮
spring 核心
spring DI & IOC :
項(xiàng)目中用到spring框架了嗎? 說(shuō)說(shuō)你對(duì)依賴注入和控制反轉(zhuǎn)的理解?spring中的依賴注入有哪些方式? 哪種方式能避免循環(huán)依賴?為什么?如果出現(xiàn)循環(huán)依賴了你怎么解決?
spring AOP:
spring aop有用過(guò)嗎? spring aop有哪些核心內(nèi)容? 你使用aop實(shí)現(xiàn)了什么功能呢? aop的原理知道嗎? 假如我要使用aop去實(shí)現(xiàn)統(tǒng)計(jì)方法的執(zhí)行時(shí)間的功能?你用哪種通知方式? 說(shuō)一下執(zhí)行時(shí)間的計(jì)算過(guò)程?有什么問(wèn)題? 說(shuō)一下spring aop中攔截器的原理? spring中的代理機(jī)制是怎么實(shí)現(xiàn)的?有哪些代理方式? 說(shuō)一下JDK動(dòng)態(tài)代理和Cglib動(dòng)態(tài)代理的區(qū)別? Cglib只能對(duì)類進(jìn)行代理嗎?final修飾的類能代理嗎?
spring Bean:
說(shuō)一下spring bean的注入過(guò)程? 說(shuō)一下spring的啟動(dòng)過(guò)程?spring bean銷毀的時(shí)候會(huì)做哪些操作,調(diào)用哪些方法? 說(shuō)一下我配置的bean在spring中是怎么存的? 說(shuō)一下bean的作用域有哪些?分別有哪些使用場(chǎng)景?
spring 源碼&設(shè)計(jì)模式:
spring源碼閱讀過(guò)嗎? 說(shuō)一下spring有哪些核心模塊? 說(shuō)一下spring mvc的整個(gè)處理流程? spring的controller類是線程安全的嗎? 如何保證線程安全呢? 說(shuō)一下spring的事務(wù)傳播屬性有哪些? 說(shuō)一下spring中有哪些設(shè)計(jì)模式?這么做的好處是什么? 說(shuō)一下spring的啟動(dòng)過(guò)程中事件監(jiān)聽是怎么做的?
springboot
springboot有用過(guò)嗎? 說(shuō)一下springboot的啟動(dòng)流程? 做過(guò)自定義的springboot starter嗎? 什么是自動(dòng)裝配?原理是啥? 什么是SPI?跟java中的SPI有什么區(qū)別?項(xiàng)目中大量使用SPI有什么缺點(diǎn)? springboot項(xiàng)目有哪些運(yùn)行方式? springboot跟mybatis集成使用需要配置什么?
springcloud 組件
spring eruake:eruake的服務(wù)發(fā)現(xiàn)是怎么做的? eruake的源碼讀過(guò)嗎?如果服務(wù)提供方下線了客戶端如何感知? eruake在CAP模型中滿足了哪兩個(gè)特性? 跟zk比有什么區(qū)別?跟nacos相比呢? spring hystrix:hystrix用過(guò)嗎?說(shuō)一下hystrix的斷路器的原理? sentinel跟hystrix有什么區(qū)別?
三、分布式連環(huán)炮
分布式CAP理論
分布式CAP理論了解嗎? 說(shuō)一下CAP分別代表什么意思? zk滿足了哪兩項(xiàng)?為什么? redis呢? 有哪些組件或者中間件滿足AP/CP?
分布式鎖
分布式鎖有哪幾種實(shí)現(xiàn)方案? Mysql的悲觀鎖怎么實(shí)現(xiàn)的? 樂(lè)觀鎖和悲觀鎖的區(qū)別? zk實(shí)現(xiàn)的分布式鎖有什么缺點(diǎn)? 假如使用redis實(shí)現(xiàn)分布式鎖的話怎么解決超時(shí)問(wèn)題?有哪些方案? Redisson用過(guò)嗎?
分布式事務(wù)
分布式事務(wù)有用過(guò)嗎? 如何保證事務(wù)數(shù)據(jù)一致性的?有哪些方案? 假如事務(wù)過(guò)程中出現(xiàn)了不一致的情況怎么處理? 假如我有一個(gè)履約場(chǎng)景,發(fā)送發(fā)貨通知,然后調(diào)用庫(kù)存服務(wù)扣減庫(kù)存,然后寫訂單數(shù)據(jù)到自己的業(yè)務(wù)db中,現(xiàn)在有個(gè)問(wèn)題就是第二步失敗了,第一步成功了,請(qǐng)問(wèn)怎么解決?
分布式RPC框架原理
項(xiàng)目中用到RPC框架了嗎?什么框架? dubbo用過(guò)嗎?畫一下dubbo的架構(gòu)流程? dubbo中注冊(cè)中心如何感知服務(wù)下線的? dubbo注冊(cè)中心掛了會(huì)影響服務(wù)間的調(diào)用嗎?為什么? RPC的原理是什么?畫一下RPC服務(wù)調(diào)用的過(guò)程? RPC的序列化協(xié)議有哪些?你用過(guò)的這些RPC框架有哪些令你感到不爽的地方呢? 假如要實(shí)現(xiàn)一個(gè)RPC框架你如何支持異步調(diào)用的特性? RPC框架中的工作線程和Netty線程中怎么去分工的?
分布式微服務(wù)理論&領(lǐng)域模型
分布式系統(tǒng)有過(guò)實(shí)踐經(jīng)驗(yàn)嗎? 你如何理解分布式和集群的? 你認(rèn)為什么是微服務(wù)? 說(shuō)說(shuō)你最熟悉的項(xiàng)目是怎么用微服務(wù)的方式搭建起來(lái)的? 畫一下這個(gè)項(xiàng)目的業(yè)務(wù)架構(gòu)圖?說(shuō)一下項(xiàng)目里面有哪些核心業(yè)務(wù)模型? 畫一下這些業(yè)務(wù)模型之間的關(guān)系?有哪些業(yè)務(wù)流程? DDD了解嗎?這些系統(tǒng)的邊界在哪?有哪些上下文?實(shí)體和值模型的區(qū)別是什么?
分布式任務(wù)調(diào)度
項(xiàng)目中分布式定時(shí)任務(wù)怎么用的? 如何確保只有一臺(tái)機(jī)器去執(zhí)行?假如任務(wù)執(zhí)行時(shí)間較長(zhǎng),超過(guò)了鎖的時(shí)間怎么解決? 有個(gè)場(chǎng)景:有4個(gè)運(yùn)動(dòng)員,需要同時(shí)開始跑并跑到終點(diǎn),另外有2個(gè)裁判分別在起點(diǎn)和終點(diǎn),在起點(diǎn)的裁判負(fù)責(zé)發(fā)起開始跑的指令,在終點(diǎn)的裁判負(fù)責(zé)記錄每位運(yùn)動(dòng)員到終點(diǎn)的時(shí)間,然后需要計(jì)算4位運(yùn)動(dòng)員的耗時(shí)排名。有以下三個(gè)問(wèn)題: 如何設(shè)計(jì)這個(gè)業(yè)務(wù)場(chǎng)景的業(yè)務(wù)模型? java 多線程中如何去模擬并計(jì)算這4個(gè)運(yùn)動(dòng)員的耗時(shí),并得出排名? 假如在分布式的情況下如何計(jì)算這4個(gè)運(yùn)動(dòng)員的耗時(shí),并得出排名?擴(kuò)展: 分布式調(diào)度了解嗎?假如我有一批任務(wù)要執(zhí)行,我現(xiàn)在有很多集群,每個(gè)集群的機(jī)器數(shù)量和狀態(tài)都不一樣?你該怎么去調(diào)度這些機(jī)器去盡快完成這些任務(wù)?在上述任務(wù)調(diào)度過(guò) 程中假如有任務(wù)執(zhí)行耗時(shí)比較長(zhǎng),請(qǐng)問(wèn)有哪些排查思路?
完
? ? ? ?
???覺(jué)得不錯(cuò),點(diǎn)個(gè)在看~

評(píng)論
圖片
表情
