SpringCloud—OpenFeign服务接口调用:主要做服务的调用 (在客户端)
Feign是什么
Feign能做什么
简单来说Feign是一个服务接口绑定器,在接口上加一个Feign相应的注解我们就能调用。
Feign和OpenFeign的区别
OpenFeign使用步骤
步骤:
1.注解+接口:微服务调用接口(服务端的接口) +@FeignClient(只要标记这个注解我们就知道是通过Feign来调用的)
2.新建一个客户端:Feign在客户端(消费端,定义一个客户端的Feign)使用
3.pom:会发现OpenFeign天生整合进了Ribbon,所以说也具备了Ribbon的负载均衡功能
4.配置yml文件
5.主启动类:
在SpringCloud中你调用哪个组件分两步:
1.使用(在哪里使用,在就在哪个脑袋上标记注解:@FeignClient)
2.激活(主启动类上使用@EnableFeignClients注解)
3.
6.业务类:
1.业务逻辑接口+@FeignClient配置调用服务提供者 (provider) 的服务
2.新建一个业务接口并新增注解@FeignClient
7.测试
注意:
Feign自带负载均衡配置项
例:
/**
* 作为Feign功能使用的接口,新增使用接口,找哪个微服务的东西
*/
@Component
//找哪个微服务(写的是微服务名称)
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PayMentFeignService {
//拿到cloud-provider-payment8001的controller的查询方法,
//@GetMapping是调用地址通过这个地址调用cloud-provider-payment8001上相同地址,完成接口的调用
@GetMapping(value = "/payment/get/{id}")
public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);
@GetMapping(value = "/payment/feign/timeout")
public String paymentFeignTimeOut();
}
OpenFeign的超时控制
OpenFeign默认等待1秒钟,超时就会报错,之后我们要去 yml配置文件中配置
OpenFeign默认支持Ribbon,因为里面携带Ribbon的jar包
OpenFeign的日志打印功能
日志级别
配置日志
@Configuration
public class FeignConfig
{
@Bean
Logger.Level feignLoggerLevel()
{
return Logger.Level.FULL;
}
}
在YML配置文件中开启 日志的Feign的客户端
logging:
level:
# feign日志以什么级别监控哪个接口,如果控制台打印不出来就扫描到报名即可
#com.atguigu.springcloud.service.PaymentFeignService: debug
com.atguigu.springcloud.service: debug
版权声明:本文为qq_39314972原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。