https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/multi-versions/ 根据官网的描述: 老版本服务提供者配置 <dubbo:service interface="com.foo.BarService" version="1.0.0" />
新版本服务提供者配置 <dubbo:service interface="com.foo.BarService" version="2.0.0" />
消费者如果不需要区分版本,可以按照以下的方式配置 <dubbo:reference id="barService" interface="com.foo.BarService" version="" /> 测试代码: 消费者 @DubboReference(group="dubbo", version="", check = false) private HelloService helloService;
2个服务提供者 @DubboService(group="dubbo", version="v1.0.0") public class HelloServiceImpl implements HelloService { ... }
@DubboService(group="dubbo", version="v2.0.0") public class HelloServiceImplV2 implements HelloService { ... }
控制台日志: org.apache.dubbo.rpc.RpcException: Failed to invoke the method sayHello in the service com.shiguang.platform.provider.common.HelloService. No provider available for the service dubbo/com.shiguang.platform.provider.common.HelloService:* from registry 127.0.0.1:8848 on the consumer 192.168.0.107 using the dubbo version 3.0.8. Please check if the providers have been started and registered.
dubbo 3.0.8 + Nacos 2.1.0 + SpringBoot 2.6.4 无论是@DubboReference注解方式还是泛化调用都试了,都是No provider错误,请问不区分版本调用功能是否已支持,还是我的demo使用问题?
原提问者GitHub用户guipengfei
我在我这边dubbo3.0.8+nacos2.1.2+springboot2.6.4是没有问题的,你应该检查一下你的服务是否已经注册上注册中心了,建议在你的配置上面加一下dubbo.scan.base-package。
在AbstractRegistry#noifty中调用了UrlUtils#isMatch,在如下进行处理
原回答者GitHub用户MieAh
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。