zoukankan      html  css  js  c++  java
  • C#中thrift 中THttpHandler 传输数据 慢 slow 解决办法

    1. 在用c# 写thrift的服务端,来相应http请求,在用结构体传输时,会遇到一个问题,就是(在用网络)传输数据特别慢,

    这是由于在发生数据是用的TStreamTransport 导致每传一个数据,就建立一次连接。

    2.解决办法:

     可以降THttpHandler中的重写为以下的。

      public void ProcessRequest(Stream input, Stream output)
            {
                //TTransport transport = new TStreamTransport(input,output);
                TTransport inTransport = new TStreamTransport(input, output);
                //在out加入缓存机制
                TBufferedTransport outTransport = new TBufferedTransport((TStreamTransport)inTransport);
                //TTransport transport = new TStreamTransport(input, output);
    
                TProtocol inputProtocol = null;
                TProtocol outputProtocol = null;
    
                try
                {
                    inputProtocol = inputProtocolFactory.GetProtocol(inTransport);
                    outputProtocol = outputProtocolFactory.GetProtocol(outTransport);
    
                    while (processor.Process(inputProtocol, outputProtocol)) { }
                }
                catch (TTransportException)
                {
                    // Client died, just move on
                }
                catch (TApplicationException tx)
                {
                    Console.Error.Write(tx);
                }
                catch (Exception x)
                {
                    Console.Error.Write(x);
                }
    
                inTransport.Close();
                outTransport.Close();
            }
    

      

  • 相关阅读:
    hp_jetdirect 9100漏洞检测
    fenghuangscannerV3 EXE版本
    计划:6.10
    [PY]进制转换
    OpenStack 制作镜像
    Kernel 问题小记
    Ubuntu 问题小记
    Git 常用命令
    OpenStack 构建单测环境
    SDN 杂谈
  • 原文地址:https://www.cnblogs.com/qiange/p/3992192.html
Copyright © 2011-2022 走看看