SpringCloud---B站学习---OpenFeign服务接口调用

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版权协议,转载请附上原文出处链接和本声明。