soul源碼閱讀(三)接入Dubbo應用示例運行

目錄

架構介紹

示例代碼閱讀

示例運行

總結


上篇文章,我們已經運行過soul-examples-http示例,對soul的基本使用有了一個基本的瞭解,本次我們不妨再來熟悉下比較熱門的微服務框架Dubbo如何整合使用。

架構介紹

先來看一下上面的架構圖,業務端請求到soul網關,網關會獲取讀取到soul-admin的註冊的配置信息,然後拿到配置信息去dubbo服務中心獲取對應的服務,並路由轉發請求服務到後臺服務器。

而後臺dobbo服務啓動後將後寫入配置和元數據到soul-admin控制檯進行管理,並將服務註冊到服務中心。

示例代碼閱讀

打開soul-examples-dubbo的模塊,裏邊有三個子模塊,咱們不妨每個子模塊打開仔細來瞧瞧裏面做了啥。

(1)soul-examples-dubbo-api代碼閱讀

裏邊的目錄結構是比較簡單的,就一個entity包和一個service包,都只做了一個最簡單的事情,對象定義和接口的定義。

再來看下pom.xml文件,貌似沒引入啥東西,由此可以看出該子模塊是爲其它兩個模塊服務而定義的基本對象和接口。

(2)soul-examples-apache-dubbo-service代碼閱讀

同樣打開包看一下,裏面是做了api定義的兩個接口的實現,通過@SoulDubboClient註解,將會把api接口註冊到soul-admin。

再來看下application.yml文件,配置了soul-admin的地址以及端口,並且配置了自己的server端口爲8011。

spring-dubbo.xml配置文件裏是dubbo的一些基本配置,如服務中心的配置,這裏以zookeeper作爲服務註冊中心,dobbo協議的配置,dobbo服務的配置等。

最後再來瞧一下pom.xml文件,引入了soul-spring-boot-starter-client-apache-dubbo包,業務開發通過使用@SoulDubboClient註解可以將獎配置自動註冊到soul-admin,其它相關的依賴包就是基本的一些dubbo配置了。如果對dubbo不熟,不妨可以閱讀《芋道 Spring Boot Dubbo 入門》文章,筆者也未在工作中使用過dubbo,也是看了這篇文章有了一些基本瞭解。

(3)soul-examples-alibaba-dubbo-service代碼閱讀

基本與第二個模塊,使用也一致,兩者可以簡單認爲是版本的不一致,不做過多重複介紹。

示例運行

run TestApacheDubboApplication,運行報錯,提示api程序包不存在,報錯截圖如下所示:

 

再次檢查了pom.xml的文件配置,沒有問題。最終網上找到處理小技巧如下:

對於 idea 下的 maven 工程,特別是從其他地方導入的新工程,右邊 maven 管理工具中 dependencies 若出現紅色波浪線。通常用以下方式嘗試解決。

(1)檢查 repository 和 settings.xml文件中配置的倉庫地址,File --> settings 輸入maven,檢查local repository的配置和settings.xml中配置的倉庫地址。

(2)打開項目 pom.xml 文件,右鍵 maven --> reimport ,等待maven重新加載依賴。

(3)同上面操作一樣,可以同時對整個項目的所有pom.xml文件進行reimport。打開編譯器右邊的maven管理工具,點擊reimport all maven projects。

參考鏈接:https://www.jianshu.com/p/45a609b2049f

解決上述問題後,再次運行,再次報錯,報錯截圖如下:

一看zookeeper沒有安裝,缺啥補啥,官網下載zookeeper安裝包,簡單修改下配置,即可起一個單機zookeeper起來,如果是windows可以參考https://www.cnblogs.com/RainAndWind/p/4668427.html

再次run,終於run起來了。

打開soul-admin頁面,默認在途中的dubbo插件是關閉狀態,編輯打開它,並檢查是否配置已正常註冊,截圖如下,查看到都已正常。

最後一步,打開postman發送請求,請求soul-bootstrap網關,訪問dubbo服務成功。

總結

對dubbo服務的接入原理以及使用,我們到此大概也已經有個基本瞭解了,那麼讓我們再回到文章開頭的那個架構圖,soul是泛化調用dubbo服務的,那麼怎麼理解這個泛化調用的?代碼是怎麼處理的呢?留着這個疑問,後面咱們繼續。

 

 

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