• Feign的简介及使用


    一、Feign简介

    Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign

    其作用就是帮助我们优雅的实现http请求的发送,解决代码可读性差,编程体验不统一、参数复杂URL难以维护的问题。

     二、使用Feign的步骤

    1.引入依赖

    1. <dependency>
    2. <groupId>org.springframework.cloudgroupId>
    3. <artifactId>spring-cloud-starter-openfeignartifactId>
    4. dependency>

    2.编写Feign客户端

     主要是基于SpringMVC的注解来声明远程调用的信息,比如:

    • 服务名称:userservice
    • 请求方式:GET
    • 请求路径:/user/{id}
    • 请求参数:Long id
    • 返回值类型:User

     3. 在消费者启动类添加注解开启Feign的功能

    4.在消费者服务中使用客户端

     三、自定义Feign的配置

    Feign运行自定义配置来覆盖默认配置,可以修改的配置如下:

    类型

    作用

    说明

    feign.Logger.Level

    修改日志级别

    包含四种不同的级别:NONE、BASIC、HEADERS、FULL

    feign.codec.Decoder

    响应结果的解析器

    http远程调用的结果做解析,例如解析json字符串为java对象

    feign.codec.Encoder

    请求参数编码

    将请求参数编码,便于通过http请求发送

    feign. Contract

    支持的注解格式

    默认是SpringMVC的注解

    feign. Retryer

    失败重试机制

    请求失败的重试机制,默认是没有,不过会使用Ribbon的重试

    一般我们需要配置的就是日志级别。 

    配置Feign的日志文件一般有2种方式,选择其一即可

    第一种是yaml配置方法

     第二种是使用java代码方式,需要先声明一个Bean

    1. public class DefaultFeignConfiguration {
    2. @Bean
    3. public Logger.Level logLevel(){
    4. return Logger.Level.BASIC;
    5. }
    6. }

     四、Feign的性能优化

    Feign底层的客户端实现:

    1. URLConnection:默认实现,不支持连接池
    2. Apache HttpClient :支持连接池
    3. OKHttp:支持连接池

    优化Feign的性能主要包括:

    • 使用连接池代替默认的URLConnection
    • 日志级别,最好用basic或none

    添加依赖

    1. <dependency>
    2. <groupId>io.github.openfeigngroupId>
    3. <artifactId>feign-httpclientartifactId>
    4. dependency>

    在消费者的yaml配置文件中添加连接池配置

    1. feign:
    2. client:
    3. config:
    4. default: # default全局的配置
    5. loggerLevel: BASIC # 日志级别,BASIC就是基本的请求和响应信息
    6. httpclient:
    7. enabled: true # 开启feign对HttpClient的支持
    8. max-connections: 200 # 最大的连接数
    9. max-connections-per-route: 50 # 每个路径的最大连接数

  • 相关阅读:
    2024北京近视防控与视力矫正展,北京眼健康产业展览会
    智慧食堂这个技术,有点秀
    MySQL空间数据函数
    springCloud_Gateway服务网关
    正则表达式高阶(一)
    【校招VIP】前端布局模块之Flex弹性布局
    Nuxt3 的生命周期和钩子函数(一)
    【LeetCode 150】逆波兰式求值
    宠物社区风格 商业版(GBK)Discuz模板
    第三章 MATLAB的使用
  • 原文地址:https://blog.csdn.net/yueyue763184/article/details/127983391