zuul网关配置请求并发以及重试

介绍

Zuul默认集成hystrix, 同时,和hystrix一样采用线程隔离技术
zuul默认使用:信号量(semaphore)
hystrix默认使用:线程池 (thread)

配置信号量

属性描述
zuul.ribbon-isolation-strategysemaphore配置隔离策略为信号量
zuul.semaphore.max-semaphores1000配置信号量大小
hystrix.command.default.execution.isolation.strategysemaphore配置断路器中的隔离策略为信号量
hystrix.command.default.execution.isolation.semaphore.maxConcurrentRequests1000配置断路器中的信号量大小

没有测试过,只配置zuul是否生效, 或者2个配置不同,哪一个配置生效

重试

1.5.6
使用Ribbon zuul hystrix

引入重试jar包

<dependency>
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>
 
 
  • 1
  • 2
  • 3
  • 4

参考 LoadBalancerAutoConfiguration 以及RibbonAutoConfiguration
实现原理: RetryLoadBalancerInterceptor 实现 ClientHttpRequestInterceptor 通过拦截器实现

配置

属性描述默认值
spring.cloud.loadbalancer.retry.enabledture开启重试机制true
zuul.retryabletrue如果使用zuul,需要配置该属性false
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds8000如果使用ribbon和hystrix,设置超时时间1000
ribbon.OkToRetryOnAllOperationstrue是否所有的操作都重试false
ribbon.MaxAutoRetriesNextServer2重试负载均衡其他实例的最大重试次数,不包括首次实例0
ribbon.MaxAutoRetries0同一台实例的最大重试次数,不包括首次调用0
ribbon.ConnectTimeout1000http建立socket超时时间
ribbon.ReadTimeout3000http读取响应socket超时时间

注意:
- ribbon.ConnectTimeout+ribbon.ReadTimeout<hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds
- 连接失败的意思是服务宕机,请求不可到达, 并不是服务报错

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值