天天看點

搭建Dubbo源碼環境

要搭建Dubbo 源碼環境,你首先需要下載下傳源碼。這裡你可以直接從官方倉庫 https://github.com/apache/dubbo

fork一個到自己的倉庫

搭建Dubbo源碼環境

從自己倉庫下載下傳

git clone [email protected]:ln0491/dubbo.git
           

因為目前最新的是 Dubbo 2.7.7 版本,用這個新版本

git checkout -b dubbo-2.7.7 dubbo-2.7.7 

           

執行 mvn 指令進行編譯

mvn clean install -Dmaven.test.skip=true 

           

時間比較久

搭建Dubbo源碼環境

指令轉換成 IDEA 項目:

mvn idea:idea // 要是執行報錯,就執行這個 mvn idea:workspace 

           

然後,在 IDEA 中導入源碼,因為這個導入過程中會下載下傳所需的依賴包,是以會耗費點時間。

搭建Dubbo源碼環境

子產品

  • dubbo-common 子產品:

    Dubbo 的一個公共子產品,其中有很多工具類以及公共邏輯,例如Dubbo SPI 實作、時間輪實作、動态編譯器等。

    搭建Dubbo源碼環境
  • dubbo-remoting 子產品:
  • Dubbo 的遠端通信子產品,其中的子子產品依賴各種開源元件實作遠端通信。在 dubbo-remoting-api 子子產品中定義該子產品的抽象概念,在其他子子產品中依賴其他開源元件進行實作,例如,dubbo-remoting-netty4 子子產品依賴 Netty 4 實作遠端通信,dubbo-remoting-zookeeper 通過 Apache Curator 實作與 ZooKeeper 叢集的互動。
  • 搭建Dubbo源碼環境
  • dubbo-rpc 子產品:
  • Dubbo 中對遠端調用協定進行抽象的子產品,其中抽象了各種協定,依賴于 dubbo-remoting 子產品的遠端調用功能。dubbo-rpc-api 子子產品是核心抽象,其他子子產品是針對具體協定的實作,例如,dubbo-rpc-dubbo 子子產品是對 Dubbo 協定的實作,依賴了 dubbo-remoting-netty4 等 dubbo-remoting 子子產品。 dubbo-rpc 子產品的實作中隻包含一對一的調用,不關心叢集的相關内容。
    搭建Dubbo源碼環境
  • dubbo-cluster 子產品:

    Dubbo 中負責管理叢集的子產品,提供了負載均衡、容錯、路由等一系列叢集相關的功能,最終的目的是将多個 Provider 僞裝為一個 Provider,這樣 Consumer 就可以像調用一個 Provider 那樣調用 Provider 叢集了。

  • dubbo-registry 子產品:
  • Dubbo 中負責與多種開源注冊中心進行互動的子產品,提供注冊中心的能力。其中, dubbo-registry-api 子子產品是頂層抽象,其他子子產品是針對具體開源注冊中心元件的具體實作,例如,dubbo-registry-zookeeper 子子產品是 Dubbo 接入 ZooKeeper 的具體實作。
  • 搭建Dubbo源碼環境
  • dubbo-monitor 子產品:

Dubbo 的監控子產品,主要用于統計服務調用次數、調用時間以及實作調用鍊跟蹤的服務。

  • dubbo-config 子產品:

    Dubbo 對外暴露的配置都是由該子產品進行解析的。例如,dubbo-config-api 子子產品負責處理 API 方式使用時的相關配置,dubbo-config-spring 子子產品負責處理與 Spring 內建使用時的相關配置方式。有了 dubbo-config 子產品,使用者隻需要了解 Dubbo 配置的規則即可,無須了解 Dubbo 内部的細節。

搭建Dubbo源碼環境
  • dubbo-metadata 子產品:

    Dubbo 的中繼資料子產品(本課程後續會詳細介紹中繼資料的内容)。dubbo-metadata 子產品的實作套路也是有一個 api 子子產品進行抽象,然後其他子子產品進行具體實作

    搭建Dubbo源碼環境
  • dubbo-configcenter 子產品:

    Dubbo 的動态配置子產品,主要負責外部化配置以及服務治理規則的存儲與通知,提供了多個子子產品用來接入多種開源的服務發現元件

    搭建Dubbo源碼環境

Demo這裡使用Zookeeper下載下傳

http://archive.apache.org/dist/zookeeper/

搭建Dubbo源碼環境
搭建Dubbo源碼環境

運作Demo中的dubbo-demo-xml-provider中的Application啟動提提供者

繼續閱讀