上一篇 <<<高并發(fā)情況下,接口的代碼會存在哪些問題
下一篇 >>>動靜分離架構(gòu)模式
1.人工在線壓縮
css/js/img實現(xiàn)壓縮地址:http://tool.oschina.net/jscompress/
2.Maven自動打包壓縮蒂阱,生成min文件
<!-- 構(gòu)建相關(guān)配置 -->
<build>
<!-- maven插件配置 -->
<plugins>
<plugin>
<!-- YUI Compressor Maven壓縮插件 -->
<groupId>net.alchim31.maven</groupId>
<artifactId>yuicompressor-maven-plugin</artifactId>
<version>1.3.0</version>
<configuration>
<!-- 讀取js,css文件采用UTF-8編碼 -->
<encoding>UTF-8</encoding>
<!-- 不顯示js可能的錯誤 -->
<jswarn>false</jswarn>
<!-- 若存在已壓縮的文件,會先對比源文件是否有改動闲勺。有改動便壓縮,無改動就不壓縮 -->
<force>false</force>
<!-- 在指定的列號后插入新行 -->
<linebreakpos>-1</linebreakpos>
<!-- 壓縮之前先執(zhí)行聚合文件操作 -->
<preProcessAggregates>true</preProcessAggregates>
<!-- 壓縮后保存文件后綴 -->
<suffix>.min</suffix>
<!-- 源目錄,即需壓縮的根目錄 -->
<sourceDirectory>${basedir}/mobile</sourceDirectory>
<!-- 壓縮js和css文件 -->
<includes>
<include>**/*.js</include>
<include>**/*.css</include>
</includes>
<!-- 以下目錄和文件不會被壓縮 -->
<excludes>
<exclude>**/*.min.js</exclude>
<exclude>**/*.min.css</exclude>
<exclude>scripts/data/*.js</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
使用:mvn yuicompressor:compress
壓縮完后讯屈,會生成min文件绑蔫,去除了注釋空格換行等
3.Nginx自帶的壓縮
server {
listen 8888;
server_name www.jarye.cn
gzip on;
gzip_buffers 32 4K;
gzip_comp_level 6;
gzip_min_length 100;
gzip_types application/javascript text/css text/xml;
gzip_disable "MSIE [1-6]\."; #配置禁用gzip條件运沦,支持正則。此處表示ie6及以下不啟用gzip(因為ie低版本不支持)
gzip_vary on;
location / {
proxy_pass http://localhost:9091/;
index index.html index.htm;
}
}
gzip配置的常用參數(shù)
gzip on|off; #是否開啟gzip
gzip_buffers 32 4K| 16 8K #緩沖(壓縮在內(nèi)存中緩沖幾塊? 每塊多大?)
gzip_comp_level [1-9] #推薦6 壓縮級別(級別越高,壓的越小,越浪費CPU計算資源)
gzip_disable #正則匹配UA 什么樣的Uri不進行g(shù)zip
gzip_min_length 200 # 開始壓縮的最小長度(再小就不要壓縮了,意義不在)
gzip_http_version 1.0|1.1 # 開始壓縮的http協(xié)議版本(可以不設(shè)置,目前幾乎全是1.1協(xié)議)
gzip_proxied # 設(shè)置請求者代理服務(wù)器,該如何緩存內(nèi)容
gzip_types text/plain application/xml # 對哪些類型的文件用壓縮 如txt,xml,html ,css
gzip_vary on|off # 是否傳輸gzip壓縮標(biāo)志
4.各種壓縮方式的區(qū)別
傳統(tǒng)的壓縮方案:實際上對注釋配深、空格去除携添、換成一行;
nginx壓縮方案:將重復(fù)性比較高的function等關(guān)鍵字設(shè)置長度較小的字典(a篓叶、b之類的)烈掠,缺點是壓縮非常的耗CPU資源。
如果圖片壓縮不清晰缸托,可以使用分段組裝向叉,一張大圖切割為多長小圖,相當(dāng)于多線程請求服務(wù)端嗦董,速度會快很多母谎。
推薦閱讀:
<<<高并發(fā)架構(gòu)的整體思路
<<<一個網(wǎng)站訪問慢的真正原因
<<<高并發(fā)情況下,接口的代碼會存在哪些問題
<<<動靜分離架構(gòu)模式
<<<緩存策略匯總
<<<后端服務(wù)的雪崩效應(yīng)及解決思路
<<<服務(wù)的隔離京革、降級和熔斷
<<<服務(wù)限流之計數(shù)器方式
<<<服務(wù)限流之滑動窗口計數(shù)
<<<服務(wù)限流之令牌桶算法
<<<服務(wù)限流之漏桶算法
<<<漏桶算法和令牌桶算法的區(qū)別
<<<自定義封裝限流算法
<<<應(yīng)用級限流
<<<接入層限流