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();
}
C#中thrift 中THttpHandler 传输数据 慢 slow 解决办法的更多相关文章
- [转]iOS Safari 中click点击事件失效的解决办法
iOS Safari 中click点击事件失效的解决办法 问题起因: 在微信公众号开发(微站)过程中用jquery的live方法绑定的click事件点击无效(不能执行) 问题描述 当使用委托给一个元素 ...
- python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
- eclipse中的js文件报错的解决办法
在使用别人的项目的时候,导入到eclipse中发现js文件报错,解决办法是关闭eclipse的js校验功能. 三个步骤: 1. 右键点击项目->properties->Validation ...
- 配置IIS提示打开目录浏览时的问题:未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的解决办法
错误消息: 未能从程序集“System.ServiceModel, Version=3.0.0.0”中加载类型“System.ServiceModel.Activation.HttpModule” 的 ...
- Spring MVC普通类或工具类中调用service报空空指针的解决办法(调用service报java.lang.NullPointerException)
当我们在非Controller类中应用service的方法是会报空指针,如图: 这是因为Spring MVC普通类或工具类中调用service报空null的解决办法(调用service报java.la ...
- Android 在 Fragment 中使用 getActivity() NullPointException 的思考和解决办法
问题: 使用 AS 在 Fragment 中调用 getActivity() 方法的时候会出现可能为空指针的提醒 使用 monkey 多次十万次测试,会出现 getActivity() NullPoi ...
- linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法
linux中没有dos2UNIX或者UNIX2dos命令怎么解决办法 http://blog.csdn.net/w616589292/article/details/38274475 dos2unix ...
- Xamarin中VS无法连接Mac系统的解决办法
Xamarin中VS无法连接Mac系统的解决办法 按照以下步骤排查:(1)确认Mac系统中安装Xamarin.iOS开发必备的组件,如Mono.Xamarin.iOS.(2)将Windows和Mac下 ...
- 关于pycharm中pip版本10.0无法使用的解决办法
背景: 近期在利用 pycharm 安装第三方库时会提示 pip 不是最新版本, 因此对 pip 进行更新,但是生成最新版本之后, pip 中由于缺少 main 函数,导致在 pycharm 中无法自 ...
随机推荐
- JVM 关闭前执行命令的钩子
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { public void run() { System.out.prin ...
- Weblogic安装
1.下载wls_121200.jar, 2.输入cnd打开命令提示 3.f:进入F盘 4.Java -version 验证是否配置Java环境, 5.echo %path% 查看环境变量 6.set ...
- PHP之路,Day1 - PHP基础
本节内容 1.PHP介绍 2.第一个PHP脚本程序 3.PHP语言标记 4.指令分割符 5.程序注释 6.在程序中使用空白符的处理 7.变量 8.变量的类型 9.数据类型之间相互转换 ...
- ckeditor异常问题
上传图片时点击上传按钮时,图片不能上传,有两种可能 1:采用ssh框架 , 上传图片对应的struts.xml没有配置<constant name="struts.action.exc ...
- 使用Github遇到的问题及解决办法
问题一: 当push代码上去仓库时,出现 ! [rejected] master -> master (fetch first) error: failed to push som ...
- c#匿名类 anonymous学习
感谢http://blog.csdn.net/jjx0224/article/details/5887589 感谢http://hi.baidu.com/guodong828/blog/item/cc ...
- c# socket通信较完善方案
c#的socket通信应用.文件较多.附件为工程. core AbstractBytesWorker.cs 字节工作器(基类),用于用于同一不同功能的字节工作器 BinaryHand.c ...
- 【linux设备模型】之platform设备驱动
一.platform总线.设备和驱动 platform是一种虚拟总线,对应的设备称为platform_device,对应的驱动称为platform_driver. platform_devic ...
- win7 下 qwt安装教程
一.安装:qwt的安装很简单,可以参看它的install文档.1.解开下载下来的zip文件,比如解开到d:\qt\qwt-5.0.2目录下,修改目录下的qwtconfig.pri文件里面的安装路径,比 ...
- 不安装oracle客户端也可以使用pl/sql developer
通常情况下,用PL/SQL Developer连接Oracle是需要安装Oracle客户端软件的,这也就意味着你的硬盘将被占用大约1G-2G的空间,对于Windows操作系统来说,你还会多出一些开机自 ...