Spring Cloud Zuul的重试配置详解
SpringCloudZuul模块本身就包含了对于hystrix和ribbon的依赖,当我们使用zuul通过path和serviceId的组合来配置路由的时候,可以通过hystrix和ribbon的配置调整路由请求的各种时间超时机制。
1ribbon配置举例
配置连接超时时间1秒,请求处理时间2秒,统一服务server尝试重连1次,切换server重连1次
ribbon: ConnectTimeout:1000 ReadTimeout:2000 MaxAutoRetries:1 MaxAutoRetriesNextServer:1
2hystirx配置举例
hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds:60000
这里需要注意的是hystrix的配置时间应该大于ribbon全部重试时间的总和,上面我配置的是2次重试,包括首次请求,三次时间是6秒
引用官方大神的一段说明
WhenusingHystrixcommandsthatwrapRibbonclientsyouwanttomakesureyourHystrixtimeoutisconfiguredtobelongerthantheconfiguredRibbontimeout,includinganypotential
retriesthatmightbemade.Forexample,ifyourRibbonconnectiontimeoutisonesecondand
theRibbonclientmightretrytherequestthreetimes,thanyourHystrixtimeoutshould
beslightlymorethanthreeseconds.
3打开zuul的重试配置:
zuul: retryable:true
特别注意zuul的重试配置需要依赖spring的retry,不然的话怎么配置都是徒劳
org.springframework.retry spring-retry
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。