分散式架構學習之:024--Dubbo直連服務提供者
阿新 • • 發佈:2019-01-30
直連提供者
在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連,
點對點直聯方式,將以服務介面為單位,忽略註冊中心的提供者列表,
A介面配置點對點,不影響B介面從註冊中心獲取列表。
(1) 如果是線上需求需要點對點,可在<dubbo:reference>中配置url指向提供者,將繞過註冊中心,多個地址用分號隔開,配置如下:(1.0.6及以上版本支援)
<dubbo:reference
id= "xxxService" interface = "com.alibaba.xxx.XxxService" url= "dubbo://localhost:20890" />
|
(2) 在JVM啟動引數中加入-D引數對映服務地址,如:
(key為服務名,value為服務提供者url,此配置優先順序最高,1.0.15及以上版本支援)
java
-Dcom.alibaba.xxx.XxxService=dubbo: //localhost:20890
|
注意 為了避免複雜化線上環境,不要在線上使用這個功能,只應在測試階段使用。 |
(3) 如果服務比較多,也可以用檔案對映,如:
(用-Ddubbo.resolve.file指定對映檔案路徑,此配置優先順序高於<dubbo:reference>中的配置,1.0.15及以上版本支援)
(2.0以上版本自動載入${user.home}/dubbo-resolve.properties檔案,不需要配置)
java
-Ddubbo.resolve.file=xxx.properties
|
然後在對映檔案xxx.properties中加入:
(key為服務名,value為服務提供者url)
com.alibaba.xxx.XxxService=dubbo: //localhost:20890
|
注意 為了避免複雜化線上環境,不要在線上使用這個功能,只應在測試階段使用。 |
我啟動web-boss,這裡呼叫是遠端提供者服務 檢視user-service,provider方的配置
配置consumer方呼叫本地dubbo服務,進行直連除錯 <dubbo:reference interface="edu.facade.user.service.PmsUserFacade" id="pmsUserFacade" timeout="2000" check="false"url="dubbo://localhost:20880"/>
我們啟動本地 dubbo服務,以debug模式啟動
在dubbo管理控制檯檢視dubbo服務
啟動消費端,web-boss我們進行直連除錯 consumer控制檯資訊
我們再訪問登入,會發現已呼叫本地dubbo模式,進入debug除錯模式
我們在Dubbo管理控制檯把provider禁用,發現也是呼叫本地dubbo服務,繞過了註冊中心,這就是直連提供者
我們在${user.home}下配置直接提供者屬性也是可以的(推薦使用) dubbo-resolve.properties
內容 : edu.facade.user.service.PmsUserFacade=dubbo://localhost:20880
注意點:
1、 直連提供者只需要在消費端設定
2、 ${user.home}指的是當前作業系統使用者目錄,如 Win7系統 Administrator的使用者目錄就是 C:\Users\Administrator