美文网首页
面试篇:Spring Cloud Feign

面试篇:Spring Cloud Feign

作者: 文大奇Quiin | 来源:发表于2020-06-27 22:51 被阅读0次

1. Feign简介

Feign是Netflix开发的声明式、模块化的HTTP客户端,可帮助我们更加便捷、优雅地调用HTTP API。Spring Cloud 对Feign进行了增强,使Feign支持了SpringMVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。

2. Feign配置

在启动类添加@EnableFeignClients

创建一个客户端接口,在接口上添加@FeignClient

Feign客户端

2.1 使用Java代码自定义Feign配置

在Spring Cloud中,Feign的默认配置是FeignClientsConfiguration,该类定义了Feign默认使用的编码器、解码器、所使用的契约等。

Spring Cloud 允许通过@FeignClient的configuration属性自定义Feign的配置,自定义配置优先级比FeignClientsConfiguration要高。(单个Feign Client)

Spring Cloud 允许通过@EnableFeignClients的defaultConfiguration属性自定义Feign的配置。(全局配置)

2.2 使用属性自定义Feign配置

从Spring Cloud Netflix1.4.0开始,Feign支持使用属性自定义,这种方式比使用Java代码配置的方式更加方便。

    connectTimeOut    //配置连接超时

    readTimeout       //配置读取超时

    loggerLevel         //配置Feign日志级别

    encoder           //编码器(对请求进行处理)

    decoder           //解码器(对响应进行处理)

    retryer            //配置重试

    requestInterceptors     //配置拦截器

3. Feign对压缩的支持

//开启请求压缩

feign.compression.request.enabled = true

//对哪些媒体类型进行压缩

feign.compression.request.mime-types =text/xml,application/xml,application/json

//压缩请求的最小值

feign.compression.request.min-request-size= 2048

//开启响应压缩

feign.compression.response.enable = true

4. Feign的日志

Feign的日志打印只会打印DEBUG级别,但可以配置Feign的日志级别:

NONE:不记录任何日志(默认值)。

BASIC:记录请求方法、URL、响应状态代码以及执行时间。

HEADERS:记录BASIC级别的基础上,记录请求和响应的header。

FULL:记录请求和响应的header、body和元数据。

5. Feign的文件上传

添加依赖:

文件上传依赖

添加配置:

配置编码器

6. 简单源码分析

源码解析

相关文章

网友评论

      本文标题:面试篇:Spring Cloud Feign

      本文链接:https://www.haomeiwen.com/subject/qchbfktx.html