一、背景
目前項目是基於dubbo做為rpc,zk為注冊中心實現多個微服務之間的遠程服務調用。但需要本地聯調dubbo接口時,需要繞過注冊中心,達到不干擾線上服務,即只訂閱不注冊服務的目的。
二、實現
1.修改服務提供者的配置文件:provider.xml
<dubbo:registry address="127.0.0.1:2181" register="false" />
或者
<dubbo:registry address="127.0.0.1:2181?register=false" />
register="false":禁用注冊配置
2.dubbo接口本地直連設置(切記:適用於開發測試階段,沒有特定需求,線上不要使用)
- 第一種方式:通過 -D 參數指定
在 JVM 啟動參數中加入-D參數映射服務地址,如:
java -Dcom.example.modules.user.UserFacade=dubbo://localhost:20880
- 第二種方式:在訂閱配置文件consumer.xml中指定url
<dubbo:reference id="userFacade" interface="com.example.modules.user.UserFacade" url="dubbo://localhost:20880" />
注意不要把代碼提交到服務器上。
- 第三種方式:映射配置文件
(2.0
以上版本)自動加載 ${user.home}/dubbo-resolve.properties文件,項目中不需要配置。
在本機電腦用戶下新建文件dubbo-resolve.properties,然后在文件中加入需要直連的服務。
# 直連服務列表 com.example.modules.user.UserFacade=dubbo://localhost:20880
如果有多個,繼續添加即可,推薦使用此種方式,可以避免代碼提交,方便統一管理。