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();
            }
    

      

  • 相关阅读:
    Linux面试题大全
    数据库学习002
    数据学习001
    003
    002
    001
    金蝶清空日志数据库脚本
    表格批量导入金蝶专业版销售订单
    金蝶单据清空记账标志
    金蝶单据字段审核后可修改
  • 原文地址:https://www.cnblogs.com/qiange/p/3992192.html
Copyright © 2011-2022 走看看