我用的 dubbo3.0.7,参考 https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-kubernetes 这个 demo 创建的spring boot 应用,运行一切正常
由于服务可能比较多, 我不太想 像 demo 里面一个个订阅服务 subscribed-services=dubbo-samples-apiserver-provider, 所以我取消了这个配置, 项目依旧可以运行, 但是我不太明白这个地址的配置能有那些, 取消了这个订阅有什么影响?
dubbo.registry.address=kubernetes://DEFAULT_MASTER_HOST?registry-type=service&duplicate=false&namespace=dubbo-demo&trustCerts=true&subscribed-services=dubbo-samples-apiserver-provider
然后在消费接口这里使用的是 @DubboReference(version = "1.0.0", providedBy = "dubbo-samples-apiserver-provider") 这样来引用接口,这里为什么需要声明应用呢? 而且我尝试过不声明应用启动就会提示 没有服务提供者 导致启动失败,如果一个个加providedby, 就显得有点傻
求大佬解惑!!!
原提问者GitHub用户zhaoqf-cq
这里需要一个服务映射的功能。
因为dubbo本身是没法在消费端侧知道interface对应的appName是什么,在 Kubernetes 体系下,Service 对应的是 appName,没有 appName 就没法做订阅,所以才有了 providedBy 这个参数。
对于一些其他注册中心下的,比如 nacos 默认会开启元数据中心,元数据中心中会存有一份 interface to appName 的映射,所以不需要配 providedBy 参数。但是 Kubernetes 原生体系下没有这个元数据中心。
原回答者GitHub用户AlbumenJ
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。