博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thrift在windows下的使用
阅读量:6305 次
发布时间:2019-06-22

本文共 797 字,大约阅读时间需要 2 分钟。

hot3.png

        在我的业务中,一直有局域网内的rpc要求,之前是基于webservice来做,通过gsoap来生成C++的客户端代码。使用webservice的时候,有两个地方很不爽:

        1) 当接口发生变化的时候,我需要先修改服务器端的接口,然后通过浏览器来访问,然后保存接口描述文件,最后再通过gsoap来生成c++代码,十分的麻烦(当然也可以直接修改接口描述文件,但那玩意太复杂,没有修改服务器端代码来的直接明了)。

        2) Webservice是基于http传输的,数据都是文本,传输效率有限,所以当时需要传输文件的时候都是先通过ftp传到服务器上,然后再调用webservice接口,通知服务器。

      所以一直在寻找一个直接基于tcp的同时支持多种语言的rpc技术,也曾试过xmlrpc和jsonrpc但效率也不是非常高。后来一次偶然的机会,看到某人的blog上介绍了thrift的技术,说是效率非常不错,有直接的tcp传输方式,数据支持二进制方式,而且参数直接支持二进制流,还支持n多个语言,描述文件类似与C,哈哈,我的需求全中啊,所以就是它了。

     不过在使用thrift的windows c++版本的时候,还是有点小问题的,当启动服务的时候,会出现WSAStartup的错误,网上找到了老外的解决方法,需要在添加一段代码,就是在TSocket::local_open()的一开始调用isOpen()之前,调用下TWinsockSingleton::create(),我进去看了下,就是调用了WSAStartup,不明白为啥这个thrift里会有这个低级bug呢,是Facebook的那帮大神从来不用windows么?但他们又是如何在不用windows的情况下写出windows的版本并保证没有其他bug的呢?

转载于:https://my.oschina.net/victorzhao/blog/86622

你可能感兴趣的文章
订餐系统之同步美团商家订单
查看>>
使用ArrayList时设置初始容量的重要性
查看>>
Java Web-----JSP与Servlet(一)
查看>>
Maven搭建SpringMVC+Mybatis项目详解
查看>>
关于量子理论:最初无意的简化,和一些人有意的强化和放大
查看>>
CentOS 6.9通过RPM安装EPEL源(http://dl.fedoraproject.org)
查看>>
“区块链”并没有什么特别之处
查看>>
没有功能需求设计文档?对不起,拒绝开发!
查看>>
4星|《先发影响力》:影响与反影响相关的有趣的心理学研究综述
查看>>
IE8调用window.open导出EXCEL文件题目
查看>>
python之 列表常用方法
查看>>
vue-cli脚手架的搭建
查看>>
在网页中加入百度搜索框实例代码
查看>>
在Flex中动态设置icon属性
查看>>
采集音频和摄像头视频并实时H264编码及AAC编码
查看>>
3星|《三联生活周刊》2017年39期:英国皇家助产士学会于2017年5月悄悄修改了政策,不再鼓励孕妇自然分娩了...
查看>>
linux查看命令是由哪个软件包提供的
查看>>
高级Linux工程师常用软件清单
查看>>
堆排序算法
查看>>
folders.cgi占用系统大量资源
查看>>