閱讀源碼的作用
提取設計思路,增強設計能力
理解運行機制,便于快速解決問題以及功能擴展
常見有關dubbo的問題
dubbo的負載均衡是在哪個組件中處理的?
dubbo默認的負載均衡算法是什么?
如果注冊中心掛掉了客戶端是否能夠繼續(xù)調用dubbo?
一個請求從調用端到服務端的處理流程是什么?
如果你有仔細的研讀dubbo的開發(fā)文檔,大部分問題都是有答案的,為了進一步了解細節(jié)就有必要對源碼進行了解。
源碼分析計劃
使用dubbo時間也有快兩年時間了,雖然官方的dubbo已經(jīng)停止維護,但也有其它組織在繼續(xù)維護:
dubbox,是當當維護的
還有一個是基于jdk8版本的
一直想看看dubbo的源碼,但沒有集中時間來學習。最近利用了一部分時間所以將我的學習經(jīng)歷記錄下來,主要從這幾步來展開,只想搞清楚大體流程,對于其它一些細節(jié)我目前并不太關注,比如序列化,線程池,集群,上下文,異步回調等。
RPC框架的簡易結構
dubbo客戶端的初始化
dubbo服務端的初始化
dubbo客戶端處理請求流程
dubbo服務端處理請求流程
RPC簡易結構
為了更加清楚的看清楚RPC的結構,主要看以下幾個核心組件即可,其余的組件都是圍繞它們來完成。
序列化組件,因為需要遠程調用,所以需要將參數(shù)以二進制流的形式進行編碼操作