非常全面 Dubbo 原理和機制詳解( 二 )

非常全面 Dubbo 原理和機制詳解

文章插圖
對照上面的整體架構圖 , 大致分為以下8大步驟:
1、服務提供者啟動,開啟Netty服務,創建Zookeeper客戶端,向注冊中心注冊服務;
2、服務消費者啟動,通過Zookeeper向注冊中心獲取服務提供者列表,與服務提供者通過Netty建立長連接;
3、服務消費者通過接口開始遠程調用服務,ProxyFactory通過初始化Proxy對象 , Proxy通過創建動態代理對象;
4、動態代理對象通過invoke方法,層層包裝生成一個Invoker對象,該對象包含了代理對象;
5、Invoker通過路由,負載均衡選擇了一個最合適的服務提供者,在通過加入各種過濾器,協議層包裝生成一個新的DubboInvoker對象;
6、再通過交換成將DubboInvoker對象包裝成一個Reuqest對象,該對象通過序列化通過NettyClient傳輸到服務提供者的NettyServer端;
7、到了服務提供者這邊,再通過反序列化、協議解密等操作生成一個DubboExporter對象,再層層傳遞處理,會生成一個服務提供端的Invoker對象;
8、這個Invoker對象會調用本地服務,獲得結果再通過層層回調返回到服務消費者,服務消費者拿到結果后,再解析獲得最終結果 。
以上 , 是關于 Dubbo 原理機制及架構設計等的詳細解析 。
本文對理解、掌握和使用 Dubbo 有所幫助,可以作為 Dubbo 的參考學習資料,建議收藏、時常溫顧 。
如果覺得有用,請點擊【 推薦 】支持下,謝謝~
 作者簡介陳睿 | mikechen , 10年+大廠架構經驗,「mikechen 的互聯網架構」系列文章作者 , 專注互聯網架構技術 。
閱讀「mikechen 的互聯網架構」的更多技術文章合集: 
Java并發 | JVM | MySQL | Spring | Redis | 分布式 | 高并發

推薦閱讀