问题描述
使用 Zuul 作为网关,偶发超时问题及第一次调用触发熔断问题
解决方案
超时问题
1 | ribbon: |
第一次调用触发熔断
1 | hystrix: |
因为 Zuul 采用了懒加载机制,第一次访问的时候才会加载某些类,由于默认的时间原本就比较短,加载这些类又需要一些时间,造成超时
注意事项
如果同时添加上面两个配置,可能会有下面得警告:
1 | The Hystrix timeout of XXms for the command user-service is set lower than the combination of the Ribbon read and connect timeout, YYms |
XX 的值为 hystrix 设置的时间
YY 的值为:
1 | ribbonTimeout = (ribbonReadTimeout + ribbonConnectTimeout) * (maxAutoRetries + 1) * (maxAutoRetriesNextServer + 1); |
XX 的值要大于 YY 的值,否则已经触发了熔断 ribbon 的设置就没有意义了,所以会有上面的警告
参考: