SpringBoot开启数据Gzip压缩

1、优化场景

在优化接口时间的过程中,发现很多接口的Content Download时间较长,除了网络问题,就是接口请求的数据太大了,有的达到了几百 kb。

控制返回参数收效甚微,这时开启 gzip 就非常有用了,可以压缩接口请求的数据,一般的json文本压缩比率很大,开启之后接口时间大幅下降!

  • Spring boot 版本:2.1.6.RELEASE

2、启用步骤

Spring Boot 项目配置比较简单:

server.compression.enabled=true

默认只压缩超过 2048 字节的数据,修改server.compression.min-response-size的值可以设置该大小

默认情况下,只有在响应内容类型为以下内容时才会压缩响应:

  • text/html
  • text/xml
  • text/plain
  • text/css

我们的接口返回的是 json 数据,所以修改下面的配置:

server.compression.mime-types=application/json

yml 文件的配置方式

# 开启Gzip压缩,默认只压缩超过2048字节的数据
server:
  compression:
    enabled: true
    mime-types: application/json

这样 Gzip 就开启了!

注意: 老版本的Spring boot的启用配置和新版本的不同,我发现项目中原本是启用的,之后升级Spring boot版本时没有更新配置导致了未启用。所以在更新框架版本时,要及时注意配置的变动,以防一些功能失效!

老版本的配置:

server.tomcat.compression=on
server.tomcat.compressableMimeTypes=application/json

3、如何查看 Gzip 是否开启成功

Google 浏览器打开 F12,切换到 NetWork 下,右键表头选择 Response Headers 下的Content-Encoding,如果开启了 Gzip,对应接口中的Content-Encoding中会有显示。

注意: 在同时开启 https 和 http 的工程中,Gzip 配置只对主端口生效!

4、启用后的效果

开启前:数据 Size 为 511KB,右侧时间蓝色部分(Content Download)较长

开启前:数据 Size 为 21.3KB,Content-Encoding 中显示 gzip,右侧时间蓝色部分消失

对比效果非常明显,接口时间由1.03s降到164ms,完美!

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值