15.OpenFeign 总结(springcloud)

OpenFeign 主要基于 接口和注解实现了远程调用
源码总结:面试
1. OpenFeign 用过吗?它是如何运作的?
在主启动类上加上 @EnableFeignClients 注解后,启动会进行包扫描,把所有加了 @FeignClient(value= xxx-service ) 注解的接口进行创建代理对象通过代理对象,使用 ribbon 做了负载均衡和远程调用
2. 如何创建的代理对象?
当 项 目 在 启 动 时 , 先 扫 描 , 然 后 拿 到 标 记 了 @FeignClient 注 解 的 接 口 信 息 , 由 ReflectiveFeign 类的 newInstance 方法创建了代理对象 JDK 代理
3. OpenFeign 到底是用什么做的远程调用?
使用的是 HttpURLConnection java.net
4. OpenFeign 怎么和 ribbon 整合的?
在代理对象执行调用的时候

OpenFeign 的日志功能

从前面的测试中我们可以看出,没有任何关于远程调用的日志输出,如请头,参数 Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而揭开 Feign Http 请求的所有细节
OpenFeign 的日志级别
NONE 默认的,不显示日志
BASE 仅记录请求方法, URL ,响应状态码及执行时间
HEADERS BASE 之上增加了请求和响应头的信息
FULL HEADERS 之上增加了请求和响应的正文及无数据
创建配置类 或则 在主函数类中创建也可以
package com.it;

import feign.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class UserService02Application {

    public static void main(String[] args) {

        SpringApplication.run(UserService02Application.class, args);
    }

    /**
     * 打印feign日志信息的级别
     * @return
     */
    @Bean
    public Logger.Level level(){
        return Logger.Level.FULL;
    }

}
修改该项目的配置文件 ,添加如下语句

调用测试

 

 

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

做一道光

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

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

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

打赏作者

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

抵扣说明:

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

余额充值