dubbo-spring-boot的auto-configure示例報Not found exported service的解決辦法

  • 2019 年 10 月 6 日
  • 筆記

本示例基於dubbo-spring-boot-project 2.7.3版本,可能會根據新版的發布而過時,閱讀時請注意。

關於dubbo在spring-boot中該如何使用,網上有很多例子,但因為時間跨度太久,很多例子已經過時了,一切還是要以官方的例子為準。

在github上搜索dubbo和spring-boot整合的項目的話,可能會找到下面兩個,分別是

  1. alibaba / dubbo-spring-boot-starter
  2. apache / dubbo-spring-boot-project

第一個項目,已經歸檔了(archived),不再更新,所以我們要以第二個項目為準,千萬別搞錯了。

打開第二個項目的主頁,就開始瀏覽README中的Getting Started章節。 這個章節給我們展示了一個無註冊中心(dubbo.registry.address=N/A)的例子。

但是它卻跑不起來,消費者啟動後無法找到service provider,報Not found exported service的錯誤。

解決辦法如下:
需要在消費者Reference服務提供者時,url里指明version。其實version已經指明了,但不知為何還要在url里再次指定。

//  @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345")      @Reference(version = "1.0.0", url = "dubbo://127.0.0.1:12345?version=1.0.0")      private DemoService demoService;

另外,Getting Started中的pom依賴也比較簡略,省略了spring-boot原本需要的依賴,您可以參考我這個修復版里pom中的依賴。

源碼地址:https://github.com/kongxiangxin/dubbo-spring-boot-samples