您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

解析tcp交互thrift的使用实例

2024/12/4 4:36:20发布18次查看
apache thrift 是 facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。
安装thrift 从官网下载 然后按照./configure,make,make install 方式进行安装,其他系统可以参照官网http://thrift.apache.org/docs/install/
定义thrift文件, 相当于通讯双方的接口定义,
bool boolean, one byte * i8 (byte) signed 8-bit integer * i16 signed 16-bit integer *  i32 signed 32-bit integer *  i64 signed 64-bit integer *  double 64-bit floating point value * string string * binary blob (byte array)  * map<t1,t2> map from one type to another  * list<t1> ordered list of one type  * set<t1> set of unique elements of one type
用thrift生成关于thrift定义的代码,对应各种语言,我这主要是python,也可以其他的c++,java,命令是thrift --gen <language> <thrift filename>
server和client的编写,server要多考虑无阻塞,多进程,保证服务正常,调用thrift生成的类,对应定义好的数据类型。
def init_handler():     sub-process init handler      signal.signal(signal.sigint, signal.sig_dfl)     signal.signal(signal.sigterm, signal.sig_dfl)     signal.signal(signal.sighup, signal.sig_dfl)     signal.signal(signal.sigusr1, debug)def main():     the main entrance      port = sys.argv[1]     signal.signal(signal.sigint, exit_signal_handler)     signal.signal(signal.sigterm, exit_signal_handler)     signal.signal(signal.sighup, exit_signal_handler)     signal.signal(signal.sigusr1, debug)     gc.set_threshold(20000, 10, 10)     handler = maitreyahandler()     processor = maitreya.processor(handler)     transport = tsocket.tserversocket(port=port)     tfactory = ttransport.tbufferedtransportfactory()     pfactory = tbinaryprotocol.tbinaryprotocolfactory()    # server = tprocesspoolserver(processor, transport, tfactory, pfactory)     server = tgeventserver.tgeventprocesspoolserver(processor, transport, tfactory, pfactory)     server.setnumworkers(worker_num)     server.setpostforkcallback(init_handler)    print server started...     server.serve()
以上就是解析tcp交互thrift的使用实例的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product