本文共 1406 字,大约阅读时间需要 4 分钟。
在Feign中查看请求链路的状态耗时等信息时,可以通过日志的方式实现。建议在资源目录下添加一个logback.xml文件配置日志框架,不详细赘述日志框架的配置方法。
在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/