Netty實現dubbo的原理


引言

         微服務最核心的注冊服務,以前一直用的springcloud,在聽了網絡視頻對dubbo的講解后加深理解,看了csdn講解后還原了代碼實現。

框架理論

     

Dubbo 特點:

是一個RPC框架,SOA框架

底層采用mina,netty長連接進行傳輸!典型的provider和cusomer模式!

有服務治理功能,提供服務的注冊和發現!用zookeeper實現注冊中心!

原理:

啟動時候服務端會把所有接口注冊到注冊中心,並且訂閱configurators,服務消費端訂閱provide,configurators,routers,訂閱變更時,zk會推送providers,configuators,routers,啟動時注冊長連接,進行通訊!proveider和provider啟動后,后台啟動定時器,發送統計數據到monitor(監控中心)!提供各種容錯機制和負載均衡策略!!

圖解:

    盜圖,zookeeper  作為registry

     

實現步驟

組件:

   Zookeeper、netty 。

      (Zookeeper容器,映射類和服務, 簡易版完全可以用Map<類名,List<服務>>替代,此處用到zookeeper的持久化節點、臨時節點)

步驟:

  1. 安裝zookeeper ,java程序中建立連接。
  2. 服務注冊,將對象名綁定到服務地址。com.dubbo.Icsdn -> 127.0.0.1:8888
  3. 消費端通過classname請求zookeeper返回服務地址IP:port
  4. 消費端Netty請求ip:port/classname/method
  5. 服務端netty回復classname/method

代碼實現:

  https://github.com/heshan3662/dubbo-Netty


免責聲明!

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



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