Hystrix超时警告 网关日志如图
原配置文件:
#ribbon的全局配置项
ribbon:
#http请求连接建立超时时间(ms)
ConnectTimeout: 5000
#http请求处理超时时间(ms)
ReadTimeout: 15000
#默认重试次数
MaxAutoRetries: 1
#默认尝试的实例数
MaxAutoRetriesNextServer: 2
#熔断机制配置
#熔断的超时时间(ms)
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 15000
#线程隔离策略配置,官方推荐使用THREAD,即下游依赖的请求在一个单独的线程中隔离,这里为了解决feign转发时需要携带head信息所以讲策略设置为SEMAPHORE,即下游依赖请求在当前调用线程中执行
strategy: SEMAPHORE
```
```xml
告警原因:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds:小于ribbon超时配置公式
即 (ribbon.ConnectTimeout + ribbon.ReadTimeout) * (ribbon.MaxAutoRetries+1) * (ribbon.MaxAutoRetriesNextServer+1)>=hystrix—timeoutInMilliseconds
即(5000+15000)(1+1)(2+1)>=12000
更改后:
#ribbon的全局配置项
ribbon:
#http请求连接建立超时时间(ms)
ConnectTimeout: 5000
#http请求处理超时时间(ms)
ReadTimeout: 15000
#默认重试次数
MaxAutoRetries: 1
#默认尝试的实例数
MaxAutoRetriesNextServer: 2
#熔断机制配置
#熔断的超时时间(ms)
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 150000
#线程隔离策略配置,官方推荐使用THREAD,即下游依赖的请求在一个单独的线程中隔离,这里为了解决feign转发时需要携带head信息所以讲策略设置为SEMAPHORE,即下游依赖请求在当前调用线程中执行
strategy: SEMAPHORE