Dubbo 生態添新兵,Dubbo Admin 發佈 v0.1

爲了提高 Dubbo 里程碑版本2.7.0的使用體驗,咱們於去年年中啓動了 Dubbo Admin 的重構計劃,並做爲Dubbo生態的子項目,於近期發佈了v0.1,重構後的項目在結構上的變化以下:html

  • 將後端框架從webx替換成spring boot
  • 前端採用Vue和Vuetify.js做爲開發框架
  • 移除velocity模板
  • 集成swagger,提供api管理功能

當前版本的Dubbo Admin包含了以前版本中的絕大部分功能,包括服務治理,服務查詢等,同時支持了Dubbo2.7中服務治理的新特性。前端

配置規範

因爲在Dubbo2.7中,配置中心和註冊中心作了分離,而且增長了元數據中心,所以Dubbo Admin的配置方式也作了更新,application.properties中的配置以下:web

admin.registry.address=zookeeper://127.0.0.1:2181
admin.config-center=zookeeper://127.0.0.1:2181
admin.metadata.address=zookeeper://127.0.0.1:2181

也能夠和Dubbo2.7同樣,在配置中心指定元數據和註冊中心的地址,以zookeeper爲例,配置的路徑和內容以下:spring

# /dubbo/config/dubbo/dubbo.properties
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181

配置中內心的地址會覆蓋掉本地application.properties的配置apache

功能介紹

功能上,主要延續了以前版本的功能,包括服務查詢和服務治理,2.7版本在服務治理的功能上有了很大的改進,這些改進也大部分都會以Dubbo Admin做爲入口來體現。後端

標籤路由

標籤路由是Dubbo2.7引入的新功能,配置以應用做爲維度,給不一樣的服務器打上不一樣名字的標籤,配置以下圖所示:api

1548675129621_1f2f3f68_4f35_4105_97e2_c4a0d7dc62c8_jpeg

調用的時候,客戶端能夠經過setAttachment的方式,來設置不一樣的標籤名稱,好比本例中,setAttachment(tag1),客戶端的選址範圍就在如圖所示的三臺機器中,能夠經過這種方式來實現流量隔離,灰度發佈等功能。服務器

應用級別的服務治理

在Dubbo2.6及更早版本中,全部的服務治理規則都只針對服務粒度,若是要把某條規則做用到應用粒度上,須要爲應用下的全部服務配合相同的規則,變動,刪除的時候也須要對應的操做,這樣的操做很不友好,所以Dubbo2.7版本中增長了應用粒度的服務治理操做,對於條件路由(包括黑白名單),動態配置(包括權重,負載均衡)均可以作應用級別的配置:微信

1548675095660_2abe00e4_7a3c_4c49_8649_0cc81e00e324_jpeg

上圖是條件路由的配置,能夠按照應用名,服務名兩個維度來填寫,也能夠按照這兩個維度來查詢。app

1548675169501_57b22613_ba3a_462b_b3ba_af34ea778589_jpeg

條件路由,標籤路由和動態配置都採用了yaml格式的文本編寫,其餘的規則配置仍是採用了表單的形式。

關於兼容性

Dubbo2.6到Dubbo2.7,服務治理髮生了比較大的變化,Dubbo Admin兼容兩個版本的用法:

  • 對於服務級別的配置,會按照Dubbo2.6(URL)和Dubbo2.7(配置文件)兩種格式進行寫入,保證Dubbo2.6的客戶端可以正確讀取,解析規則
  • 對於應用級別的配置,包括標籤路由,只會按照Dubbo2.7的格式進行寫入,由於Dubbo2.6無此功能,不須要作向前兼容。
  • Dubbo Admin只會按照Dubbo2.7的格式進行配置讀取,所以,全部在Dubbo Admin上作的配置均可以被讀到,可是以前遺留的,Dubbo2.6格式的URL沒法被讀取。
  • 對於同一個應用或者服務,每種規則只可以配置一條,不然新的會覆蓋舊的。

配置管理

配置管理也是配合Dubbo2.7新增的功能,在Dubbo2.7中,增長了全局和應用維度的配置。

  • 全局配置:

1548675196442_4611bfd9_5077_4bd2_a2b1_ad89c5eefc13_jpeg

全局配置裏能夠指定註冊中心,元數據中心的地址,服務端和客戶端的超時時間等,這些配置在全局內生效。除了配置寫入,也能夠用來查看。若是使用zookeeper做爲註冊中心和元數據中心,還能夠看到配置文件所在位置的目錄結構。

  • 應用和服務配置 
    1548675223170_772fd97b_f49f_4cf6_be40_34355f8159a1_jpeg

應用級別的配置能夠爲應用或者應用內的服務指定配置,在服務維度上,須要區分提供者和消費者。dubbo.reference.{serviceName}表示做爲該服務消費者的配置,dubbo.provider.{servcieName}表示做爲該服務提供者的配置。優先級服務 > 應用 > 全局。其中註冊中心和元數據中心的地址,只能在全局配置中指定,這也是Dubbo2.7中推薦的使用方式。

元數據和服務測試

元數據是Dubbo2.7中新引入的元素,主要的使用場景就在Dubbo Admin中,主要體如今兩個地方:

  • 服務詳情展現:

1548675234502_67cefa2f_e180_4715_a203_a98bf515fe4f_jpeg

跟以前版本相比,Dubbo2.7中增長了對服務方法完整簽名的記錄,所以服務詳情中也增長了方法信息的詳情,能夠看到方法名,方法參數列表以及返回值信息。

  • 服務測試:

1548675056214_730b7a7b_d4af_4a57_ab3f_380c5afcdabb_jpeg

更重要的,元數據爲服務測試提供了數據基礎,能夠在頁面上調用真實的服務提供者,方便測試,也不須要爲了調用服務去搭建一套Dubbo環境以及編寫消費端代碼。服務測試的詳細使用方式可經過點擊這裏進行了解。

 

原文連接 更多技術乾貨 請關注阿里云云棲社區微信號 :yunqiinsight

相關文章
相關標籤/搜索