2025年面試常見架構(gòu)題庫及答案_第1頁
2025年面試常見架構(gòu)題庫及答案_第2頁
2025年面試常見架構(gòu)題庫及答案_第3頁
2025年面試常見架構(gòu)題庫及答案_第4頁
2025年面試常見架構(gòu)題庫及答案_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2025年面試常見架構(gòu)題庫及答案一、微服務(wù)架構(gòu)高頻問答1.(單選)在SpringCloud2023.x版本中,當(dāng)Gateway與OpenFeign同時(shí)啟用,下列哪項(xiàng)配置可避免“Requestheaderistoolarge”異常?A.server.maxhttpheadersize=32KBB.spring.codec.maxinmemorysize=10MBC.pression.request.enabled=trueD.spring.cloud.gateway.filter.removehopbyhop=false答案:B。SpringCloudGateway基于WebFlux,其編解碼緩沖區(qū)由spring.codec.maxinmemorysize控制,與Feign共用ReactorNetty,需同步放大該值。2.(單選)某電商訂單服務(wù)使用Saga模式,補(bǔ)償事務(wù)采用“向后恢復(fù)”。當(dāng)庫存扣減成功、支付失敗時(shí),下列補(bǔ)償順序正確的是:A.退款→恢復(fù)庫存→解鎖優(yōu)惠券B.恢復(fù)庫存→退款→解鎖優(yōu)惠券C.解鎖優(yōu)惠券→恢復(fù)庫存→退款D.退款→解鎖優(yōu)惠券→恢復(fù)庫存答案:A。Saga補(bǔ)償必須嚴(yán)格按照正向操作的逆序執(zhí)行,正向順序?yàn)椋烘i券→扣庫存→支付,故補(bǔ)償順序?yàn)槟嫦颉?.(多選)關(guān)于服務(wù)網(wǎng)格(Istio1.20)中Ambient模式,以下說法正確的有:A.使用ztunnel處理四層流量,waypointproxy處理七層B.Ambient模式下Sidecar資源限制為0,因此無額外內(nèi)存開銷C.通過HBONE隧道實(shí)現(xiàn)與Sidecar模式的互通D.支持基于Waypoint的L7AuthorizationPolicy答案:A、C、D。Ambient仍會(huì)為每個(gè)命名空間注入waypointproxy,故B錯(cuò)誤。4.(簡(jiǎn)答)請(qǐng)給出在Kubernetes1.29環(huán)境中,當(dāng)Pod使用臨時(shí)存儲(chǔ)(emptyDir)導(dǎo)致節(jié)點(diǎn)磁盤打滿時(shí),不重啟Pod即可快速釋放空間的兩種方案,并說明原理。答案:方案一:使用kubectlexec進(jìn)入容器,手動(dòng)刪除emptyDir掛載點(diǎn)內(nèi)大文件,然后執(zhí)行fallocated對(duì)文件系統(tǒng)打洞,立即歸還空間;原理是ext4/xfs支持FALLOC_FL_PUNCH_HOLE,無需等待GC。方案二:為emptyDir增加sizeLimit,并啟用集群級(jí)特性門控“SizeMemoryBackedVolumes”,kubelet會(huì)啟動(dòng)inotify監(jiān)控,當(dāng)usage超過閾值時(shí)觸發(fā)tmpfsunmount,空間立即釋放;原理是cgroupv2的memory.max限制與tmpfs聯(lián)動(dòng)。5.(綜合)某金融公司采用DDD+微服務(wù),交易域被拆分為“交易訂單”“資產(chǎn)”“行情”三個(gè)子域。現(xiàn)發(fā)現(xiàn)高并發(fā)場(chǎng)景下訂單服務(wù)寫入MySQL出現(xiàn)大量行鎖等待,請(qǐng)按以下要求給出完整優(yōu)化方案:①給出領(lǐng)域模型調(diào)整思路(限界上下文、聚合根、領(lǐng)域事件);②給出數(shù)據(jù)庫層最終一致性方案(含binlog順序性保證);③給出性能壓測(cè)驗(yàn)收指標(biāo)(TPS、RT、錯(cuò)誤率)。答案:①將“交易訂單”子域再細(xì)分為“下單上下文”“履約上下文”,把聚合根從Order拆分為OrderQuote(下單)與OrderMatch(履約),通過領(lǐng)域事件OrderCreatedEvent異步解耦,減少同一聚合根并發(fā)寫。②使用Canal1.1.15監(jiān)聽MySQLbinlog,將OrderQuote表變更投遞至Kafkatopic:order_quote_binlog,分區(qū)鍵使用order_id,保證同一訂單binlog順序;資產(chǎn)服務(wù)消費(fèi)后更新余額,采用冪等表(uniquekey:order_id+event_id)防止重復(fù)。③壓測(cè)環(huán)境:16C32G×3節(jié)點(diǎn),訂單表5000萬行,連接池上限200;驗(yàn)收指標(biāo):峰值TPS≥8000,P99RT≤120ms,錯(cuò)誤率≤0.1%,CPU≤70%,磁盤IOutil≤50%。二、高并發(fā)與性能調(diào)優(yōu)6.(單選)Linux6.6內(nèi)核中,對(duì)于epoll驚群?jiǎn)栴},下列哪個(gè)補(bǔ)丁提供了真正意義的WQ_EXCLUSIVE喚醒?A.EPOLL_EXCLUSIVEB.EPOLLONESHOTC.EPOLLEXCLUSIVED.EPOLLRDHUP答案:C。EPOLLEXCLUSIVE自4.5引入,但6.6對(duì)其語義做了完善,保證僅喚醒一個(gè)等待進(jìn)程。7.(多選)JVMG1GC在JDK21中針對(duì)大對(duì)象分配(HumongousObject)的優(yōu)化包括:A.取消HumongousRegion固定,支持并發(fā)回收B.引入regionsize自適應(yīng),最大可至512MBC.將巨型對(duì)象標(biāo)記位圖從RememberedSet剝離,降低RS掃描耗時(shí)D.允許在YoungGC時(shí)并行復(fù)制短壽命巨型對(duì)象答案:A、C、D。B選項(xiàng)regionsize上限仍為32MB,只是觸發(fā)閾值動(dòng)態(tài)調(diào)整。8.(簡(jiǎn)答)請(qǐng)解釋Nginx1.25在開啟QUIC時(shí)為何仍然可能出現(xiàn)“0RTT重放攻擊”,并給出在業(yè)務(wù)層避免訂單重復(fù)支付的兩種實(shí)現(xiàn)。答案:0RTT允許客戶端在握手前攜帶應(yīng)用數(shù)據(jù),攻擊者可重放該數(shù)據(jù)。實(shí)現(xiàn)一:在訂單創(chuàng)建接口增加冪等令牌(IdempotencyKey),Nginx層通過luarestyglobalthrottle將key寫入共享內(nèi)存,同一key60秒內(nèi)拒絕重復(fù)。實(shí)現(xiàn)二:業(yè)務(wù)網(wǎng)關(guān)生成JWT訂單令牌,聲明exp與jti,jti寫入RedisSETNX,過期時(shí)間大于exp,利用Redis單線程保證原子性。9.(綜合)某短視頻推薦接口峰值QPS30萬,P99RT180ms,使用Go1.22+Gin,pprof發(fā)現(xiàn)runtime.nanotime占CPU18%,請(qǐng)給出根因定位步驟與優(yōu)化代碼片段。答案:步驟一:通過perftop發(fā)現(xiàn)nanotime主要來源為sync.(Mutex).Unlock,結(jié)合pprof調(diào)用棧定位到高頻調(diào)用的random.Int63n;步驟二:將全局rand替換為sync.Pool預(yù)分配的rand.Rand,每個(gè)P綁定一個(gè),避免全局鎖;優(yōu)化代碼:```govarrndPool=sync.Pool{New:func()interface{}{returnrand.New(rand.NewSource(time.Now().UnixNano()))},}funcfastRand(nint64)int64{r:=rndPool.Get().(rand.Rand)v:=r.Int63n(n)rndPool.Put(r)returnv}```優(yōu)化后nanotime占比降至2%,P99RT降至90ms。三、分布式存儲(chǔ)與一致性10.(單選)在Raft算法中,當(dāng)Leader收到一條寫請(qǐng)求后,下列哪一步會(huì)先將日志持久化到本地磁盤?A.AppendEntriesRPC發(fā)送給Follower之前B.收到多數(shù)派成功響應(yīng)之后C.應(yīng)用到狀態(tài)機(jī)之后D.返回客戶端成功之后答案:A。Leader先append本地日志,再并發(fā)復(fù)制。11.(多選)TiDB7.5中,關(guān)于TiFlash與TiKV的Learner一致性模型,正確的有:A.TiFlash作為RaftLearner不參與投票,但會(huì)接收快照B.TiKV寫入需等待TiFlash確認(rèn)才可返回客戶端C.通過label隔離將TiFlash副本調(diào)度到指定節(jié)點(diǎn),避免熱點(diǎn)D.當(dāng)TiFlash落后超過60秒,查詢會(huì)自動(dòng)退化為TiKV答案:A、C、D。B選項(xiàng)TiKV寫入無需等待TiFlash,異步復(fù)制。12.(簡(jiǎn)答)請(qǐng)描述在CephPacific版本中使用BlueStore時(shí),如何通過RocksDB的WAL與BlueFS的DualWrite機(jī)制保證寫原子性,并給出在NVMe掉電場(chǎng)景下的驗(yàn)證腳本。答案:BlueStore將對(duì)象寫拆分為RocksDB的元數(shù)據(jù)WAL與BlueFS的數(shù)據(jù)寫入,通過事務(wù)封裝成rocksdb::WriteBatch,利用writeaheadlogging保證原子;當(dāng)NVMe掉電,未提交事務(wù)在重啟回放時(shí)會(huì)被回滾。驗(yàn)證腳本:```bash!/bin/bashosd_id=5cephtellosd.$osd_idflush_journalecho3>/proc/sys/vm/drop_cachesddif=/dev/urandomof=/tmp/obj_$$bs=4Mcount=10radosprbdputtest_obj_$$/tmp/obj_$$sync&&echo1>/proc/sys/kernel/sysrq&&echob>/proc/sysrqtrigger模擬掉電重啟后radosprbdgettest_obj_$$/tmp/recover_$$&&md5sum/tmp/obj_$$/tmp/recover_$$```若MD5一致則原子性得到驗(yàn)證。13.(綜合)某支付公司采用MySQL8.0組復(fù)制(GR)雙主模式,跨城延遲30ms,頻繁出現(xiàn)“certify”失敗導(dǎo)致回滾,請(qǐng)給出三階段優(yōu)化方案,要求最終單節(jié)點(diǎn)峰值寫入≥2萬TPS,沖突率<0.5%。答案:階段一:將會(huì)話級(jí)binlog_format由ROW改為MIXED,減少大字段更新沖突;同時(shí)調(diào)大group_replication_certification_timeout=5000ms,避免瞬時(shí)誤判;階段二:按用戶維度做分片,將熱點(diǎn)賬戶拆到獨(dú)立schema,利用組復(fù)制的writeset并行認(rèn)證,沖突檢測(cè)粒度由庫級(jí)降至表級(jí);階段三:引入基于Galera的ProxySQL讀寫分離,寫節(jié)點(diǎn)僅處理強(qiáng)一致事務(wù),讀流量下沉到本地只從節(jié)點(diǎn);壓測(cè)結(jié)果:sysbencholtp_write_only,單節(jié)點(diǎn)峰值TPS23500,沖突率0.37%。四、云原生與容器安全14.(單選)在Kubernetes1.29中,以下哪項(xiàng)準(zhǔn)入控制器(AdmissionController)可以阻止特權(quán)容器啟動(dòng),但允許使用CAP_SYS_ADMIN?A.PodSecurityB.SeccompProfileC.SecurityContextDenyD.PodSecurityPolicy(已廢棄)答案:A。PodSecurity的restricted策略禁止特權(quán)但允許細(xì)粒度Capability。15.(多選)關(guān)于eBPF在Cilium1.15中的使用,下列描述正確的有:A.支持通過BPFCORE實(shí)現(xiàn)一次編譯、全內(nèi)核版本運(yùn)行B.使用BPFiterator遍歷連接跟蹤表,復(fù)雜度O(1)C.在ENI模式下,繞過kubeproxy,完全基于BPF實(shí)現(xiàn)NAT46D.支持在宿主機(jī)ns與Podns同時(shí)掛載BPF程序,實(shí)現(xiàn)L7透明代理答案:A、C、D。B選項(xiàng)遍歷連接跟蹤表為O(n),無O(1)保證。16.(簡(jiǎn)答)請(qǐng)給出在AWSEKSPod使用IRSA(IAMRolesforServiceAccounts)時(shí),如何防止同一集群內(nèi)跨命名空間的Pod偽造身份令牌調(diào)用AWSAPI的兩種加固方法。答案:方法一:在OIDCProvider的Condition增加StringEquals:namespace:default,使得只有default命名空間簽發(fā)的令牌被信任;方法二:?jiǎn)⒂肊KSPodIdentityAgent,通過UnixDomainSocket校驗(yàn)PodUID與ServiceAccount,拒絕非綁定關(guān)系令牌;原理:IRSA的信任策略基于OIDCJWT,JWT中攜帶sub=system:serviceaccount:namespace:sa,通過Condition或Agent二次校驗(yàn)可阻斷偽造。17.(綜合)某SaaS平臺(tái)采用OAM(OpenApplicationModel)+KubeVela1.9,多租戶共享集群,需實(shí)現(xiàn)“網(wǎng)絡(luò)隔離+資源配額+鏡像簽名”三重安全,請(qǐng)給出完整YAML及驗(yàn)證步驟。答案:```yamlapiVersion:v1kind:Namespacemetadata:name:tenantalphalabels:podsecurity.kubernetes.io/enforce:restrictedapiVersion:v1kind:ResourceQuotametadata:name:tenantalphaquotanamespace:tenantalphaspec:hard:requests.cpu:"100"requests.memory:200Gicount/pods:"50"apiVersion:networking.k8s.io/v1kind:NetworkPolicymetadata:name:tenantalphanetpolnamespace:tenantalphaspec:podSelector:{}policyTypes:IngressEgressingress:from:namespaceSelector:matchLabels:name:tenantalphaegress:to:namespaceSelector:matchLabels:name:tenantalphaapiVersion:core.oam.dev/v1beta1kind:Applicationmetadata:name:tenantalphaappnamespace:tenantalphaspec:components:name:webtype:webserviceproperties:image:ghcr.io/example/app@sha256:7d5a6b8f9c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6cpu:"2"memory:4Gipolicies:type:imagepullsecretname:signedimageproperties:secretRef:tenantalphapullsecret```驗(yàn)證步驟:1.cosignverifykeycosign.pubghcr.io/example/app@sha256:7d5a6b8f9c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f62.kubectlas=system:serviceaccount:tenantalpha:defaultauthcanicreatepods3.在tenantbeta命名區(qū)啟動(dòng)Pod訪問tenantalpha服務(wù),應(yīng)被拒絕,返回timeout。五、可觀測(cè)性與AIOps18.(單選)OpenTelemetryCollector0.91中,關(guān)于OTLPgRPC接收器的默認(rèn)最大消息大小,下列哪項(xiàng)正確?A.4MBB.16MBC.64MBD.無限制答案:B。源碼defaultMaxRecvMsgSize=16<<20。19.(多選)Prometheus2.50在稀疏索引(SparseIndex)方面的新特性包括:A.將每間隔1/8的chunk采樣寫入稀疏索引,降低內(nèi)存B.支持通過稀疏索引直接定位倒排,跳過postingsoffsettableC.稀疏索引與TSDBblock一起壓縮,減少磁盤占用D

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論