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

最近線上項目暴露出不少問題,其中有一個問題,就是帶寬不夠用的問題,從一開始的30M 加至 60M 到後來的 200M 但是咱們的日活總共還不到10000啊,這個問題,我決定好好查查緣由spring

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

好了緣由找到了,就是這個接口致使的,優化吧app

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

2.該接口沒法拆分,不少數據必須一次返回測試

3.輪詢不能修改優化

OK ...spa

而後就想到了數據壓縮,由於咱們項目是spring-boot項目,因此添加Gzip很方便 添加兩行配置就行了code

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

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

涼涼blog

 

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

這個壓縮確實是個好東西,但是咱們項目中無法用...

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

須要用GZIP 必須是get 請求

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

相關文章
相關標籤/搜索