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进行压缩,而且服务器能成功解压。

  • 相关阅读:
    redis 键命令
    redis 数据类型
    java向word写入数据
    Eclipse发布到tomcat提示java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
    Unable to locate Spring NamespaceHandler for XMLschemanamespace http://dubbo.apache.org/schema/dubbo
    5.Dubbo之Spring XML配置
    6.Dubbo之XML配置详解。
    7.Dubbo之最佳实践
    RESTful API实践
    Jav程序执行Linux命令
  • 原文地址:https://www.cnblogs.com/littlehb/p/4176423.html
Copyright © 2011-2022 走看看