请教下,为啥dubbo-go service info里面的params 为啥要加个methods前缀?
https://github.com/apache/dubbo-go/blob/53843b7495f4f2c66be9d6992b980e0b65662a18/common/metadata_info.go#L224
这样不就会导致 把原来的dubbo.tag改成了 methods.dubbo.tag么
但是构建出来的url 参数就是错的啊
“Dubbo/Dubbo-goservice info里的params为什么要加methods前缀?”这是一个常见的问题。
通常来说,params是一个通用的属性,它可以用于表示任意类型的参数。然而,在Dubbo中,params主要用于表示服务API的方法级别的参数。因此,在Dubbo-goservice info中添加methods前缀可以明确指出params是指定给某个特定方法的参数,而不是全局参数。
另外, Dubbo中还有一种类似的属性——“service params”,它指的是服务级别(而非方法级别)的参数。这样就可以更加清晰地区分出两种不同级别的参数,使得代码更加易于理解。
在Dubbo-go的service info中,params参数被添加methods前缀的主要目的是为了在Dubbo-go的service info中,params参数被添加methods前缀的主要目的是为了避免与Dubbo的标签冲突。由于Dubbo使用了一些特定的标签来携带元数据,如果params字段没有这个前缀,那么这些带有特定含义的标签(例如dubbo.tag)就有可能会和params字段产生冲突,导致无法正确解析。因此,为了避免这种情况的发生,Dubbo-go在处理params字段时自动添加了methods前缀。
直观看上去是错误的,但是使用的时候只在methods 构建的时候用了就避免了,你这个是那个分支。看着是有问题,也只能临时想办法规避了
这个只在methods里面
影响应用及服务发现了吗,你可以提个 issue。看源码也只在应用级服务发现那用了。或者你直接提个 pr 也行。此回答整理自钉钉群:dubbogo社区1
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。