分布式系統的面試題3


 

1、面試題

 

說一下的dubbo的工作原理?注冊中心掛了可以繼續通信嗎?說說一次rpc請求的流程?

 

2、面試官心里分析

 

MQESRedisDubbo,上來先問你一些思考的問題,原理(kafka高可用架構原理、es分布式架構原理、redis線程模型原理、Dubbo工作原理),生產環境里可能會碰到的一些問題(每種技術引入之后生產環境都可能會碰到一些問題),系統設計(設計MQ,設計搜索引擎,設計一個緩存,設計rpc框架)

 

當然比如說,hard面試官,死扣,結合項目死扣細節,百度(深入底層,基礎性),阿里(結合項目死扣細節,扣很深的技術底層),小米(數據結構和算法)。

 

那既然開始聊分布式系統了,自然重點先聊聊dubbo了,畢竟dubbo是目前事實上大部分公司的分布式系統的rpc框架標准,基於dubbo也可以構建一整套的微服務架構。但是需要自己大量開發。

 

當然去年開始spring cloud非常火,現在大量的公司開始轉向spring cloud了,spring cloud人家畢竟是微服務架構的全家桶式的這么一個東西。但是因為很多公司還在用dubbo,所以dubbo肯定會是目前面試的重點,何況人家dubbo現在重啟開源社區維護了,未來應該也還是有一定市場和地位的。

 

既然聊dubbo,那肯定是先從dubbo原理開始聊了,你先說說dubbo支撐rpc分布式調用的架構師啥,然后說說一次rpc請求dubbo是怎么給你完成的,對吧。

 

3、面試題剖析

 

1dubbo工作原理

 

第一層:service層,接口層,給服務提供者和消費者來實現的

第二層:config層,配置層,主要是對dubbo進行各種配置的

第三層:proxy層,服務代理層,透明生成客戶端的stub和服務單的skeleton

第四層:registry層,服務注冊層,負責服務的注冊與發現

第五層:cluster層,集群層,封裝多個服務提供者的路由以及負載均衡,將多個實例組合成一個服務

第六層:monitor層,監控層,對rpc接口的調用次數和調用時間進行監控

第七層:protocol層,遠程調用層,封裝rpc調用

第八層:exchange層,信息交換層,封裝請求響應模式,同步轉異步

第九層:transport層,網絡傳輸層,抽象minanetty為統一接口

第十層:serialize層,數據序列化層

 

工作流程:

 

1)第一步,provider向注冊中心去注冊

2)第二步,consumer從注冊中心訂閱服務,注冊中心會通知consumer注冊好的服務

3)第三步,consumer調用provider

4)第四步,consumerprovider都異步的通知監控中心

 

2)注冊中心掛了可以繼續通信嗎?

 

可以,因為剛開始初始化的時候,消費者會將提供者的地址等信息拉取到本地緩存,所以注冊中心掛了可以繼續通信

 dubbo的工作原理:

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM