今天在学习Dubbo远程rpc调用时遇到一个小坑,生产者已经成功注册到nacos,但是在测试方法中消费者调用生产者方法时仍然报错:
查了很久并没能解决问题(有说是yml文件配置,也有说是dubbo默认启动consumer check会阻止spring初始化,但是似乎并不是这些问题)下面是我使用的Dubbo版本以及生产者和消费者yml文件的配置:
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.9</version>
<exclusions>
<exclusion>
<groupId>slf4j-log4j12</groupId>
<artifactId>org.slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-registry-nacos</artifactId>
<version>3.0.9</version>
</dependency>
生产者方法:
消费者测试方法:
翻阅官方文档的示例demo,个人感觉可能是@Service注解与@DubboService注解可能有冲突或其他原因导致生产者方法无法提供。于是测试单使用@DubboService注解实现消费者引用接口方法:
测试成功:
应该是在使用Dubbo远程调用时,生产者@Service注解与@DubboService注解无法同时使用,需要另外新建一个类使用@DubboService注解实现调用方法接口供消费者调用。