您的位置:首页 > 编程语言 > Java开发

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

2018-10-20 10:19 821 查看

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

0.需要引入:
    <!-- 重试机制 ,否则重试不生效 -->
    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
    </dependency>
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针对连接超时和获取数据超时并不会重试,需要自定义重试策略。(好像不对???)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: