微服务远程调用使用Feign组件

1、什么是微服务的远程调用

我们知道微服务是将不同业务的模块作为一个独立的服务,将众多的微服务一起构成整个的系统。如下图所示:
在这里插入图片描述
该系统包含多个微服务,而每个微服务都有一个启动类。各个服务之间互不影响。

2、问题抛出

现在存在一个问题,我们的storage微服务想要用到property微服务里面的接口,这个时候我们应该怎么办呀?这个时候就需要利用微服务的远程调用了,使我们的storage可以调用property的接口。

3.Feign组件

较RestTemplate相比,Feign提供更优雅的发送Http请求的功能,因此目前大家基本都是使用Feign组件实现远程调用,而不采用RestTemplate组件。
在使用之前我们需要
3.1引入Feign的相关依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

3.2在客户端(也就是调用端的微服务启动类)启动类开启注解启动

@EnableRyFeignClients //开启OpenFeign注解
@SpringBootApplication
public class StorageApplication {
    public static void main(String[] args) {
        SpringApplication.run(StorageApplication.class, args);
        System.out.println("(♥◠‿◠)ノ゙  仓库管理模块启动成功   ლ(´ڡ`ლ)゙  \n" +
                " .-------.       ____     __        \n" +
                " |  _ _   \\      \\   \\   /  /    \n" +
                " | ( ' )  |       \\  _. /  '       \n" +
                " |(_ o _) /        _( )_ .'         \n" +
                " | (_,_).' __  ___(_ o _)'          \n" +
                " |  |\\ \\  |  ||   |(_,_)'         \n" +
                " |  | \\ `'   /|   `-'  /           \n" +
                " |  |  \\    /  \\      /           \n" +
                " ''-'   `'-'    `-..-'              ");
    }
}

3.3创建接口、声明远程调用的路径

/**
 * 车辆服务
 * @author rql
 */
@FeignClient(contextId = "remoteCarService", value = ServiceNameConstants.CAR_SERVICE,fallbackFactory = RemoteCarFallbackFactory.class)
public interface RemoteCarService {
    @GetMapping("/parking/visitorCarNum")  //被远程调用接口的路径
    R<Integer> visitorCarNum(@RequestBody VisitorCarCountDto dto, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

3.4调用接口

@Autowired
private RemoteCarService remoteCarService ;public int NumberCar(XXX参数) {
    //远程调用查询
    int numCar=remoteCarService .visitorCarNum(XXX参数);
    return numCar;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

誓言唯美RQL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值