dubbo直连正常的直连有三种方式,详情参考官方文档
-
reference配置 url 指向提供者(官方说是1.0.6版本以上,测试1.0.4版本也可以用)
<dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" />
@Reference(version = "1.0.0", protocol = "dubbo", registry = {"xxx-consul"},url = "dubbo://localhost:20890")
-
通过 -D 参数指定
java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890
-
通过文件映射
- 用启动参数 -Ddubbo.resolve.file=xxx.properties 指定映射文件路径,此配置优先级高于 <dubbo:reference> 中的配置
在映射文件 xxx.properties 中加入配置,其中 key 为服务名,value 为服务提供者 URL:com.alibaba.xxx.XxxService=dubbo://localhost:20890
- 将配置好的dubbo-resolve.properties 放在系统的{user.home}根目录(例如 windows的 c:\users\xxxx\)下(官方说2.0版本才自动加载,测试1.0.4版本也行)
com.alibaba.xxx.XxxService=dubbo://localhost:20890
- 用启动参数 -Ddubbo.resolve.file=xxx.properties 指定映射文件路径,此配置优先级高于 <dubbo:reference> 中的配置
请求带有group的服务
这个官方没有给出示例,通过实验(主要试的是配置文件的解决方案)和网上查找发现只有reference配置的方式才可以请求到带有group的服务。dubbo实验版本1.0.4.24。而且写法比较坑,具体如下
@Reference(version = "1.0.0", protocol = "dubbo", registry = {"xxxx-consul"},
group = "ggggg", url = "dubbo://127.0.0.1:20001/ggggg/com.xxxx.xxxx.xx.MultiResourceService")
指定的group不能用,必须在url里指定group而且指定服务地址
[参考]
[1]: dubbo官网直连方案
[2]: dubbo直连指定服务提供者Ip 作者:EmineWang