接口返回的數據量太大很耗費帶寬


最近線上項目暴露出很多問題,其中有一個問題,就是帶寬不夠用的問題,從一開始的30M 加至 60M 到后來的 200M 可是我們的日活總共還不到10000啊,這個問題,我決定好好查查原因

占用帶寬無非就是接口返回的數據量過大導致,所以我就排查了下項目中返回數據量較大的幾個接口,當中的一個也是訪問很頻繁的接口 獲取即時列表接口最大返回數據量有時會超過2M!!! 我靠,更可怕的是這個接口還是個輪詢接口,5秒中前台調用一次

好了原因找到了,就是這個接口導致的,優化吧

1.業務邏輯規定該數據不能分頁返回

2.該接口無法拆分,很多數據必須一次返回

3.輪詢不能修改

OK ...

然后就想到了數據壓縮,因為我們項目是spring-boot項目,所以添加Gzip很方便 添加兩行配置就好了

server.compression.enabled=true
server.compression.min-response-size=1024
server.compression.mime-types=application/json

可是添加后沒有任何效果,接口調用后也沒有顯示數據被壓縮過 

涼涼

 

為了排除是spring-boot 版本號的問題,我使用自己之前的小項目寫了個小demo測試,不加壓縮的時候返回數據3M 加完壓縮返回的數據 60多Kb....

這個壓縮確實是個好東西,可是我們項目中沒法用...

經過百般思考,發現了其中的端倪  GET  POST

需要用GZIP 必須是get 請求

可是前台包無法即時更新,且要考慮到老版本 POST 改GET 也只能是后續版本能緩解壓力,所以 mark 下,以后這中返回數據量大的接口,只要不涉及到敏感信息,務必使用GET請求,這樣可以省好多事

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM