springcloud中hystrix和ribbon的一些超时设置

新人的探索,记录一下,遇到同样问题的也可以参考。

0.需要引入:
    
    
        org.springframework.retry
        spring-retry
    

1.需要配置:zuul.retryable=true  和  spring.cloud.loadbalancer.retry.enabled=true
2.超时时间应该:zuul > hystrix > ribbon (否则重试完成之前会被熔断)
2.当服务中设置了hystrix,以每个服务的设置为准(好像不对???)
3.ribbon超时 = (ribbonReadTimeout + ribbonConnectTimeout) * (maxAutoRetries + 1) * (maxAutoRetriesNextServer + 1);(发现:重试失败之后,熔断超时之前,也会熔断)
4.OKToRetryOnAllOperations无论请求超时或者socket read timeout都进行重试,(不建议开启,默认读取请求重试,新增修改不重试)
    为true时:
        post:重试
        get:重试
        put:重试
        delete重试
    为false时:(ReadTimeout之后直接熔断)
        post不
        get重试
        put不
        delete不
5.httpClient默认重试策略DefaultHttpRequestRetryHandler针对连接超时和获取数据超时并不会重试,需要自定义重试策略。(好像不对???)

你可能感兴趣的:(springcloud中hystrix和ribbon的一些超时设置)