[apache/dubbo]为啥dubbo:reference不支持path属性

2024-06-24 977 views
8

生产者 dubbo:service 支持path属性,而消费者 dubbo:reference不支持path属性,消费者只有类似的url,如果生产者使用了path属性, 在动态查询生产者会非常不方便。示例代码如下: image

还有一个问题为啥新版本3.xxx版本的文档,没有《XML 配置》,完全一样吗? 测试版本:2.7.3

回答

9

xml 配置的数据源和 config 是一样的,最终都会落到 config 上

path 的本身设计是给 rest 协议使用的,用于发布通用接口的。 Reference 里面没有的这个 case 你可以提个 PR 看能不能修复下

4

为什么要在reference中设置path,是怕因为服务端设置了path,所以consumer这边掉不到服务吗? consumer这边如果走注册中心去连接provider的话,不用单独设置url或者什么path都可以调到服务,不受影响的。

5

reference.setUrl的设计主要是为了直连provider,如果是直连provider的话,那么url(protocol://ip:port/path)可以看作一个服务连接的最小单元,从设计上来讲path不应该被拆分出来。

4

而service.setpath(),正如 @AlbumenJ 所说是方便发布rest服务的通用接口的

2

这个东西是可以扩展的,用来做数据隔离区分的还是非常有用的,比如这个场景:一个dubbo接口被不同的应用实现了,这时要回调某个项目的这个dubbo接口,用path会非常方便(groupId,version,tag都有特定的含义不方便用在这个地方)。

5

好的,我明白你的意思了。