feign的基本使用和优化

编程入门 行业动态 更新时间:2024-10-05 11:19:09

<a href=https://www.elefans.com/category/jswz/34/1768189.html style=feign的基本使用和优化"/>

feign的基本使用和优化

1.导入依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

2.常规写法

1.在启动类上加上@EnableFeignClients注解

2.定义一个feign客户端接口

@FeignClient("userservice")
public interface UserClient {@GetMapping("/user/{id}")User findById(@PathVariable("id") Long id);
}

3.需要远程调用的类,注入该接口,调用方法即可

3.feign的性能优化

1.更改feign客户端种类:feign下面有三种客户端,分别是

•URLConnection:默认实现,不支持连接池

•Apache HttpClient :支持连接池

•OKHttp:支持连接池

Feign的性能的主要手段就是使用连接池代替默认的URLConnection。

实现方式:yaml配置feign客户端参数

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

4.关于@EnableFeignClients注解

@EnableFeignClients(basePackages = "cn.itcast.feign.clients")//指定feign所在包

@EnableFeignClients(clients = {UserClient.class}) //指定扫描到的feign客户端类型

5.关于feign日志的配置

局部配置

feign:  
  client:
    config:
      userservice: # 针对某个微服务的配置,只有在访问userservice服务时才会显示日志
        loggerLevel: FULL #  日志级别

 全局配置

feign:  
  client:
    config:
      default: # 这里用default就是全局配置,全局时,每调用feign都会显示对应服务调用日志
        loggerLevel: FULL #  日志级别

而日志的级别分为四种:

  • NONE:不记录任何日志信息,这是默认值。

  • BASIC:仅记录请求的方法,URL以及响应状态码和执行时间

  • HEADERS:在BASIC的基础上,额外记录了请求和响应的头信息

  • FULL:记录所有请求和响应的明细,包括头信息、请求体、元数据。

使用java代码配置feign日志

public class DefaultFeignConfiguration  {@Beanpublic Logger.Level feignLogLevel(){return Logger.Level.BASIC; // 日志级别为BASIC}
}

 如果要全局生效,将其放到启动类的@EnableFeignClients这个注解中:

@EnableFeignClients(defaultConfiguration = DefaultFeignConfiguration .class) 

如果是局部生效,则把它放到对应的@FeignClient这个注解中:

@FeignClient(value = "userservice", configuration = DefaultFeignConfiguration .class) 

feign的最佳实现方式

方式:讲feign抽出成一个feign-api的服务,将需要feign需要的类都抽出一份过去,并在调用服务的@EnableFeignClients(basePackages = "feign-api服务feignClient客户端接口所在包路径")指定feignClient位置

1.创建feign的moudle

 2.导依赖

 3.抽取需要的基类

 

更多推荐

feign的基本使用和优化

本文发布于:2024-02-28 04:06:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768160.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:feign

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!