OpenFeign的使用

2022/1/19 6:34:34

本文主要是介绍OpenFeign的使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

OpenFeign 可让客户端向服务端发送请求

OpenFeign 可用于替代 Ribbon+RestTemplate。

OpenFeign 需要定义一个接口使用,默认仍是轮询算法

OpenFeign的配置

依赖

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

yaml中不需要做额外配置,如果是集群环境的话正常连接集群即可
给出示例:

image-20220119052749560

OpenFeign的使用

通过客户端向服务端发送请求,下面以此为例。

在启动类中添加注解

image-20220119052823786


Service层中添加接口

该接口的作用是,只要调用了 getPaymentById() 方法,客户端就向cloud-payment-service 服务器发送/payment/get/{id}请求

image-20220119053242254


controller层

controller 没啥区别,直接使用函数即可

image-20220119053432004

超时控制

OpenFeign默认等待时间为1s,如果超过1s就会直接报错。

但对于一些耗时长的业务而言1s是不够的,我们可以在yaml文件里手动设置OpenFeign的等待时间。

单位ms

#设置feign客户端超时时间(OpenFeign默认支持ribbon)
ribbon:
  #指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
  ReadTimeout: 5000
  #指的是建立连接后从服务器读取到可用资源所用的时间
  ConnectTimeout: 5000

日志打印

需要注入bean、配置yaml

config类如下:

FULL 为日志级别

@Configuration
public class FeignConfig {
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
}

日志级别如下:

NONE:默认的,不显示任何日志;
BASIC:仅记录请求方法、URL、响应状态码及执行时间;
HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;
FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。

yaml配置

以debug方式显示PaymentFeignService类的日志信息

image-20220119060321566

效果如图

image-20220119060348062



这篇关于OpenFeign的使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程