| fegin |
connectTimeout 连接超时时间 默认1S. 建议 1S
readTimeout 读取超时时间 默认1S。 建议 1~2S
因网络一般情况下较稳定,连接很少出现问题,connectTimeout可设置短一些
但是读取时因为网络波动等情况出状况的可能性更大一些,建议设置稍长一些(依据服务下游接口耗时情况)
hystrix 是否开启熔断机制 (依据情况开启),默认关闭,开启后参考hystrix配置。不建议打开
|
java.net.SocketException: connetct time out
Java.net.SocketException: read time out
在发生j.l.RuntimeException 后,会打开断路器,不再尝试执行实际方法(一段时间内直接走fallback)
|
feign: client: config: default: connectTimeout: 1000 readTimeout: 2000
feign: hystrix: enabled: false
|
| hystrix熔断 |
| metrics.rollingStats.timeInMilliseconds |
统计时间窗。 |
| circuitBreaker.sleepWindowInMilliseconds |
休眠时间窗,熔断开启状态持续一段时间后,熔断器会自动进入半熔断状态,这段时间就被称为休眠窗口期。 |
| circuitBreaker.requestVolumeThreshold |
请求总数阀值。
在统计时间窗内,请求总数必须到达一定的数量级,Hystrix 才可能会将熔断器打开进入熔断开启转态,而这个请求数量级就是 请求总数阀值。Hystrix 请求总数阈值默认为 20,这就意味着在统计时间窗内,如果服务调用次数不足 20 次,即使所有的请求都调用出错,熔断器也不会打开。 |
| circuitBreaker.errorThresholdPercentage |
错误百分比阈值。
当请求总数在统计时间窗内超过了请求总数阀值,且请求调用出错率超过一定的比例,熔断器才会打开进入熔断开启转态,而这个比例就是错误百分比阈值。错误百分比阈值设置为 50,就表示错误百分比为 50%,如果服务发生了 30 次调用,其中有 15 次发生了错误,即超过了 50% 的错误百分比,这时候将熔断器就会打开。 |
|
|
hystrix: command: default: metrics: rollingStats: timeInMilliseconds: 1000 circuitBreaker: sleepWindowInMilliseconds: 10000 requestVolumeThreshold: 10 errorThresholdPercentage: 60
|
| hystrix超时 |
timeout enabled 开启hystrix请求超时机制。默认true。false则永不超时。建议使用默认配置即可
timeoutInMilliseconds 在客户端配置,客户端调用的所有方法的超时时间都是该值。timeoutInMilliseconds 和 fegin的readTimeout同时存在,则谁小谁生效
|
|
hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 3000
|