Spring Cloud Zuul使用和配置

2018-10-22  本文已影响12人  指间砂的宿命

参考:http://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#_zuul_timeouts

1.Zuul超时配置

下面是Spring官方文档描述:


Snipaste_2018-10-22_13-41-03.png

在配置zuul的超时机制时,可选的两组参数包括:

ribbon.ReadTimeout
ribbon.SocketTimeout

以及

zuul.host.connect-timeout-millis
zuul.host.socket-timeout-millis

两者作用的最大区别是,以服务名(可以是注册中心发现或者自定义serviceId)进行代理的那些服务,它们的超时由ribbon控制; 对于指定url路由的服务,超时则由zuul.host设定

2.Hystrix超时熔断设置:

参考Spring官方文档描述:

Snipaste_2018-10-22_15-10-15.png
当设置好ribbon的timeout时,Hytrix的熔断时间会有默认值的,由上图所述公式计算得出。
一旦单独设置hystrix.command.xxx.execution.isolation.thread.timeoutInMilliseconds则会覆盖default的设定.

因此如果想要按照达到超时即中断的目的,合理的配置如下:

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 6000
# zuul proxy configuration
zuul:
  ribbon-isolation-strategy: THREAD

更多关于hystrix的配置说明参考:https://blog.csdn.net/tongtong_use/article/details/78611225

3.Zuul大文件上传配置

首先需要配置关闭spring自带的multipart配置(因为Spring默认提供的MultipartResolver会将文件缓存到磁盘以及内存中,对于大文件而言,这种服务器缓存是不可接受):

spring:
  servlet:  
    multipart:  
      enabled: false

然后配置启用Zuul servlet:

zuul:
  servletPath: /zuul

如果你的service之前的访问地址是:

需要注意的是,发送请求时,需要带有请求头:

Transfer-Encoding: chunked

详情参考:uploading-files-through-zuul

上一篇下一篇

猜你喜欢

热点阅读