SpringCloud项目调用Dubbo项目
项目结构:
其中,dubbo模块为dubbo服务提供方,包括服务接口和服务实现两个子模块
该模块与普通dubbo服务提供方没有变化
FeignToDubbo-starter模块负责利用Feign将底层的Http协议转化为dubbo协议,供SpringCloud项目使用。引入FeignToDubbo-starter后会引入dubbo的依赖,使用注解DubboRefence
可以标注接口类为调用dubbo api的接口,同时 @DubboReference 的注解可以像Dubbo的Refence一样指定接口的调用参数,@DubboReference 注解标注的接口类会执行Http协议转Dubbo协议,之后的接口调用使用dubbo方式。
SpringCloud模块作为服务消费方,负责调用dubbo服务,例子如下:
// 指定dubbo接口的服务名
@FeignClient("dubbo-provider")
// 配置dubbo接口的参数,比如version
@DubboReference(version = "1.0.0")
public interface HelloService {
// 具体的接口地址
@GetMapping("/sayHello")
String sayHello();
@GetMapping("/sayHello2")
String sayHello2();
}
项目启动时,先启动dubbo服务提供方,再启动springcloud服务消费方,并调用相应接口,即可实现联通调用。
注意:
- FeignToDubbo-starter 支持dubbo版本为2.7.3,service api的包名要跟dubbo provider中的包名一致。
- Springcloud项目discoveryServerAddress不能为空,注册中心使用nacos