OpenFeign相关配置(超时,重试,HttpClient5,日志)

本文介绍了如何在SpringCloud应用中调整OpenFeign客户端的超时设置,包括连接和读取超时时间,启用重试机制,以及使用HttpClient5替换默认的HttpURLConnection以提高性能。同时,文章还讨论了如何配置日志监控,以便更好地管理和诊断Feign接口的调用情况。
摘要由CSDN通过智能技术生成

1.超时控制

默认OpenFeign客户端等待60秒钟,但是服务端处理超过规定时间会导致Feign客户端返回报错。

yml文件对应配置:

                        connectTimeout:连接超时时间

                        readTimeout:请求处理超时时间

1.yml配置·
server:
  port: 80

spring:
  application:
    name: cloud-consumer-openfeign-order
  ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        prefer-ip-address: true #优先使用服务ip进行注册
        service-name: ${spring.application.name}
    openfeign:
      client:
        config:
          default:
            #连接超时时间
            connectTimeout: 3000
            #读取超时时间
            readTimeout: 3000

2.测试:

调用并记录开始以及结束时间:

测试结果:

2.重试机制

OpenFeign的默认重试是关闭的

1.自定义配置重试机制
package com.wen.cloud.config;

import feign.Retryer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FeignConfig {
    @Bean
    public Retryer myRetryer()
    {
        //return Retryer.NEVER_RETRY; //Feign默认配置是不走重试策略的

        //最大请求次数为3(1+2),初始间隔时间为100ms,重试间最大间隔时间为1s
        return new Retryer.Default(100,1,3);
    }
}
2.测试;

3.HttpClient5

HttpClient5替换OpenFeign默认的HttpURLConnection。

OpenFeign默认使用的HttpURLConnection发送http请求,性能以及效率比较低

1.导入依赖:
<!-- httpclient5-->
<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.3</version>
</dependency>
<!-- feign-hc5-->
<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-hc5</artifactId>
    <version>13.1</version>
</dependency>
2.修改yml配置:
server:
  port: 80

spring:
  application:
    name: cloud-consumer-openfeign-order
  ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        prefer-ip-address: true #优先使用服务ip进行注册
        service-name: ${spring.application.name}
    openfeign:
      httpclient:
        hc5:
          enabled: true
#    openfeign:
#      client:
#        config:
#          default:
#            #连接超时时间
#            connectTimeout: 5000
#            #读取超时时间
#            readTimeout: 5000

3.测试:

替换前:

替换后:

4.日志:

对Feign接口的调用情况进行监控和输出

日志级别:

NONE:默认的,不显示任何日志;

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

1.配置日志bean

2.yml配置
logging:
  level:
    com:
      wen:
        cloud:
          apis:
            PayFeignApi: debug
3.测试结果:

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值