美文网首页
面试篇: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