SpringBoot系列教程Web篇之開啓GZIP數據壓縮

本篇能夠概括在性能調優篇,雖然內容很是簡單,但效果可能出乎預料的好;javascript

分享一個真實案例,咱們的服務部署在海外,國內訪問時訪問服務時,響應有點誇張;某些返回數據比較大的接口,耗時在 600ms+上,然而咱們的服務 rt 倒是在 20ms 如下,絕大部分的開銷都花在了網絡傳輸上css

針對這樣的場景,除了買雲服務商的網絡通道以外,另一個直觀的想法就是減小數據包的大小,直接在 nginx 層配置 gzip 壓縮是一個方案,本文主要介紹下,SpringBoot 如何開啓 gzip 壓縮html

I. gizp 壓縮配置

1. 配置

SpringBoot 默認是不開啓 gzip 壓縮的,須要咱們手動開啓,在配置文件中添加兩行java

server:
  compression:
    enabled: true
    mime-types: application/json,application/xml,text/html,text/plain,text/css,application/x-javascript

注意下上面配置中的mime-types,在 spring2.0+的版本中,默認值以下,因此通常咱們不須要特地添加這個配置nginx

// org.springframework.boot.web.server.Compression#mimeTypes
/**
 * Comma-separated list of MIME types that should be compressed.
 */
private String[] mimeTypes = new String[] { "text/html", "text/xml", "text/plain",
		"text/css", "text/javascript", "application/javascript", "application/json",
		"application/xml" };

2. 測試

寫一個測試的 demogit

@RestController
public class HelloRest {
    @GetMapping("bigReq")
    public String bigReqList() {
        List<String> result = new ArrayList<>(2048);
        for (int i = 0; i < 2048; i++) {
            result.add(UUID.randomUUID().toString());
        }
        return JSON.toJSONString(result);
    }
}

下面是開啓壓縮先後的數據報對比github

3. 說明

雖然加上了上面的配置,開啓了 gzip 壓縮,可是須要注意並非說全部的接口都會使用 gzip 壓縮,默認狀況下,僅會壓縮 2048 字節以上的內容web

若是咱們須要修改這個值,經過修改配置便可spring

server:
  compression:
    min-response-size: 1024

II. 其餘

0. 項目

web 系列博文

項目源碼

1. 一灰灰 Blog

盡信書則不如,以上內容,純屬一家之言,因我的能力有限,不免有疏漏和錯誤之處,如發現 bug 或者有更好的建議,歡迎批評指正,不吝感激json

下面一灰灰的我的博客,記錄全部學習和工做中的博文,歡迎你們前去逛逛

一灰灰blog

原文出處:https://www.cnblogs.com/yihuihui/p/11925743.html

相關文章
相關標籤/搜索