如何自己設計一個類似dubbo的rpc框架?

面試題剖析

所以我給大家一個建議,遇到這類問題,起碼從你瞭解的類似框架的原理入手,自己說說參照dubbo的原理,你來設計一下,舉個例子,dubbo不是有那麼多分層麼?而且每個分層是幹啥的,你大概是不是知道?那就按照這個思路大致說一下吧,起碼你不能懵逼,要比那些上來就懵,啥也說不出來的人要好一些

 

舉個例子,我給大家說個最簡單的回答思路:

 

(1)上來你的服務就得去註冊中心註冊吧,你是不是得有個註冊中心,保留各個服務的信心,可以用zookeeper來做,對吧

(2)然後你的消費者需要去註冊中心拿對應的服務信息吧,對吧,而且每個服務可能會存在於多臺機器上

(3)接着你就該發起一次請求了,咋發起?蒙圈了是吧。當然是基於動態代理了,你面向接口獲取到一個動態代理,這個動態代理就是接口在本地的一個代理,然後這個代理會找到服務對應的機器地址

(4)然後找哪個機器發送請求?那肯定得有個負載均衡算法了,比如最簡單的可以隨機輪詢是不是

(5)接着找到一臺機器,就可以跟他發送請求了,第一個問題咋發送?你可以說用netty了,nio方式;第二個問題發送啥格式數據?你可以說用hessian序列化協議了,或者是別的,對吧。然後請求過去了。。

(6)服務器那邊一樣的,需要針對你自己的服務生成一個動態代理,監聽某個網絡端口了,然後代理你本地的服務代碼。接收到請求的時候,就調用對應的服務代碼,對吧。

 

這就是一個最最基本的rpc框架的思路,先不說你有多牛逼的技術功底,哪怕這個最簡單的思路你先給出來行不行?好,突擊課程,那就到這兒結束了,我這課程定位是幫你快速梳理一遍,掃清盲點,不是打通你任督二脈,給你九陽神功的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章