博客
关于我
Spring Cloud系列_14 Feign状态查看(日志方式)、请求超时
阅读量:678 次
发布时间:2019-03-16

本文共 1406 字,大约阅读时间需要 4 分钟。

Feign日志与请求超时优化

状态查看

在Feign中查看请求链路的状态耗时等信息时,可以通过日志的方式实现。建议在资源目录下添加一个logback.xml文件配置日志框架,不详细赘述日志框架的配置方法。

全局开启Feign的日志

在Spring Boot项目中,可以通过配置Feign的日志级别来记录详细信息。以下是一种常见的配置方式:

@Beanpublic Logger.Level getLogger() {    return Logger.Level.FULL;}

重启服务后,访问任意请求,控制台会打印详细的log信息,包括请求方法、URL、状态码、耗时等详细信息。以下是一些示例日志内容:

2021-05-07 14:49:01.660 DEBUG 15168 --- [ionManagerTimer] h.i.c.PoolingHttpClientConnectionManager : Closing expired connections2021-05-07 14:49:02.735 DEBUG 15168 --- [nio-7100-exec-7] o.s.web.servlet.DispatcherServlet : GET "/order/pojo?id=1&name=name", parameters={masked}...

这些符号表示请求和响应:

  • > 表示请求开始
  • < 表示响应结束

局部配置

application.properties中,可以调整Feign的默认配置。例如:

feign.enabled=truefeign.client.config.service-provider.loggerLevel=FULL

此外,可以通过提供的服务名配置更多细节。例如:

service-provider.feign.client.config.ConnectTimeout=5000service-provider.feign.client.config.ReadTimeout=5000

请求超时

Feign默认使用Ribbon进行负载均衡,Ribbon的超时配置包括连接超时和读取超时。例如,在全局配置中,可以设置:

ribbon.ConnectTimeout=5000ribbon.ReadTimeout=5000

局部优化

对于特定的服务(如service-provider),可以使用更精细的配置:

service-provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRuleservice-provider.ribbon.OkToRetryOnAllOperations=trueservice-provider.ribbon.MaxAutoRetries=2service-provider.ribbon.MaxAutoRetriesNextServer=0service-provider.ribbon.ConnectTimeOut=3000service-provider.ribbon.ReadTimeout=3000

总结

根据实际需求,可以灵活配置Feign的日志级别和超时设置。标准化的日志配置和合理的超时设置可以显著提升服务的稳定性和性能。

转载地址:http://agoqz.baihongyu.com/

你可能感兴趣的文章
Python selenium自动化测试框架实战 —— 登录测试案例
查看>>
Python Selenium设计模式 —— POM
查看>>
Python Serial:如何使用 read 或 readline 函数一次读取多个字符
查看>>
Python set([]) 如何检查两个对象是否相等?一个对象需要定义哪些方法来自定义它?
查看>>
Python setup.py:数据文件无法复制目录:不存在或不是常规文件
查看>>
Python setuptools sdist:仅安装版本化文件
查看>>
Python Shell下使用matplotlib
查看>>
Python Slice How-to,我知道Python Slice,但我怎么才能使用内置的Slice对象呢?
查看>>
python socket分包发送数据
查看>>
python socket模块_Python socket模块实现TCP服务端客户端
查看>>
Python SOCKS5代理客户端HTTPS
查看>>
Python Soc网络分析:通过使用函数迭代列表来计算机会网络
查看>>
Python SQL和NoSQL数据库操作实战
查看>>
python stdout flush_sys.stdout.flush()方法的用法
查看>>
python string 运算
查看>>
Python str与bytes之间的转换
查看>>
Python subprocess ffmpeg
查看>>
python subprocess Permission denied Errno 13
查看>>
Python subprocess.call - 将变量添加到 subprocess.call
查看>>
Python Subprocess.Popen 从一个线程
查看>>