zoukankan      html  css  js  c++  java
  • 关于在客户端上传大批量数据时的相应策略

    技术点探索
    场景:
    1、在TEACH平台上传课件前,需要将组成的资源文件MD5值算出,然后发送给服务器,让服务器检查哪些需要新上传,哪些需要复用?
    一般有文件个数按400个计。每条记录需要包括:文件MD5(32个字符) 32*400=12K左右

    2、在OFFICE插件上传试题功能中,需要将一张OFFICE试卷分解成若干个PNG和DOCX,一般以40道题为例 ,大约800个文件左右。
    每个文件需要申请一个上传的签名信息,就是要进行800次HTTP请求连接,这就是最近上传试题导致拒绝服务的原因。


    黄海的思路:
    1、由多次发起请求,合并为一次请求。
    2、一次请求的话,请求体变大,对于服务器珍贵的带宽资源,将十分致命,因为以前的大文件上传下载都是分解到OSS了,现在还要面对这个问题。
    3、办法:使用HTTP的GZIP,在请求前对请求BODY进行GZIP压缩,在服务器获取到请求体后,根据请求的GZIP标签,动态解压,获取信息,返回时使用NGINX的GZIP
    压缩进行处理返回体。


    参考办法如下:

    http压缩 Content-Encoding: gzip  
    http://liuviphui.blog.163.com/blog/static/20227308420141843933379/

    Gzip Encoding an HTTP POST Request Body
    http://www.cymbeline.ch/2014/03/16/gzip-encoding-an-http-post-request-body/

    ============================================================================
    web中gzip,deflate的压缩与解压
    http://crazysky.iteye.com/blog/775333

    后期需要转到LUA版:
    Nginx与Gzip请求
    http://huoding.com/2013/09/02/283

    ============================================================================

    需要联合测试FLEX与C#中,如何在REQUEST时使用GZIP进行压缩,而且服务器能成功解压。

  • 相关阅读:
    多线程的多核分配问题验证
    C++C#联合调试
    UNITY 手游(安卓)如何使用C/C++代码
    关于C#内存释放的BUG?
    日期转换
    深度剖析目标检测算法YOLOV4
    2. 使用Shell能做什么
    【Jmeter】之进行接口批量压力测试
    MongoDB-ChangeStream使用笔记
    Mongo-BI(bi-connector)配置使用笔记
  • 原文地址:https://www.cnblogs.com/littlehb/p/4176423.html
Copyright © 2011-2022 走看看