1. 程式人生 > >分散式架構學習之:024--Dubbo直連服務提供者

分散式架構學習之:024--Dubbo直連服務提供者

直連提供者

(+) (#)

在開發及測試環境下,經常需要繞過註冊中心,只測試指定服務提供者,這時候可能需要點對點直連,
點對點直聯方式,將以服務介面為單位,忽略註冊中心的提供者列表,
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
注意
為了避免複雜化線上環境,不要在線上使用這個功能,只應在測試階段使用。
在生產環境使用情況是,服務消費端只消費指定Provider提供者的服務 開發除錯 我們啟動遠端服務提供者
我啟動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