上传大文件经过zuul网关,包head space内存溢出
处理方式有两种
1.在application.yml配置中增加file-size-threshold: 20MB
spring: application: name: zuul-gateway servlet: #spring boot2.0之前是http multipart: enabled: true # 使用http multipart上传处理 max-file-size: 1000MB # 设置单个文件的最大长度,默认1M,如不限制配置为-1 max-request-size: 1000MB # 设置最大的请求文件的大小,默认10M,如不限制配置为-1 file-size-threshold: 100MB # 当上传文件达到100MB的时候进行磁盘写入 location: / # 上传的临时目录
2.修改配置,让网关只做简单处理后就直接交给服务的上传接口处理
对于大文件,可以绕过Spring DispatcherServlet(以避免多部分处理)在“/zuul/”中。换句话说,如果你有zuul.route.customers=/customers/*,然后您可以将大文件发布到/zuul/customers/*。servlet路径通过zuul.servletPath外部化。
注意:大文件需要修改超时机制
hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 160000 ribbon: ReadTimeout: 300000 ConnectTimeout: 300000 MaxAutoRetries: 1 MaxAutoRetriesNextServer: 1