zoukankan      html  css  js  c++  java
  • 接口返回的数据量太大很耗费带宽

    最近线上项目暴露出很多问题,其中有一个问题,就是带宽不够用的问题,从一开始的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请求,这样可以省好多事

  • 相关阅读:
    7-41 PAT排名汇总 (25分)--排序
    7-40 奥运排行榜 (25分)--sort()排序,结构体,前驱
    7-39 魔法优惠券 (25分)--sort()
    7-38 寻找大富翁 (25分)--sort()
    7-37 模拟EXCEL排序 (25分)--优先队列
    python网络编程--socketserver 和 ftp功能简单说明
    python网络编程--FTP上传文件示例
    python网络编程--粘包解决方案 和 subprocess模块
    python网络编程--socket,网络协议,TCP
    python -- 模块和包
  • 原文地址:https://www.cnblogs.com/zhaiyt/p/11410904.html
Copyright © 2011-2022 走看看