关于thrift client和server的编写方法.docxVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关于thrift client和server的编写方法

使用Thrift RPC编写程序1. 概述本文以C++语言为例介绍了thrift RPC的使用方法,包括对象序列化和反序列化,数据传输和信息交换等。本文采用了一个示例进行说明,该示例主要完成传输(上报日志或者报表)功能,该示例会贯穿本文,内容涉及thrift定义,代码生成,thrift类说明,client编写方法,server编写方法等。关于Thrift架构分析,可参考:Thrift架构介绍。关于Thrift文件编写方法,可参考:Thrift使用指南。2. 示例描述假设我们要使用thrift RPC完成一个数据传输任务,数据格式和PRC接口用一个thrift文件描述,具体如下:(1) book.thrift,用于描述书籍信息的thrift接口1234567891011121314151617//book.thrift,namespace cpp examplestructBook_Info {1: i32 book_id,2: string book_name,3: string book_author,4: double book_price,5: string book_publisher,}(2) rpc.thrift,client向server传输数据(上报日志或者报表)的RPC接口12345678910111213//rpc.thriftnamespace cpp exampleinclude book.thriftservice BookServlet {bool Sender(1: listbook.Book_Info books);oneway void Sender2(1: listbook.Book_Info books);}说明:该thrift文件定义了一个service,它包含两个接口,server端需要实现这两个接口以对client提供服务。其中,第一个接口函数是阻塞式的,即要等待server返回值以后才能继续,另外一个声明为oneway类型(返回值为void),表明该函数是非阻塞式的,将数据发给server后不必等待返回结果,但使用该函数时,需要考虑server的承受能力,适度的调整发送频率。3. Thrift文件与生成的代码对应关系每个thrift文件会产生四个文件,分别为:${thrift_name}_constants.h,${thrift_name}_constants.cpp,${thrift_name}_types.h,${thrift_name}_types.cpp对于含有service的thrift文件,会额外生成两个文件,分别为:${service_name}.h,${service_name}.cpp对于含有service的thrift文件,会生成一个可用的server桩:${service_name}._server.skeleton.cpp对于本文中的例子,会产生以下文件:book_constants.h book_constants.cppbook_types.h book_types.cpprpc_constants.h rpc_constants.cpprpc_types.h rpc_types.cppBookServlet.h BookServlet.cppBookServlet_server.skeleton.cpp4. Thrift类介绍Thrift代码包(位于thrift-0.6.1/lib/cpp/src)有以下几个目录:concurrency:并发和时钟管理方面的库processor:Processor相关类protocal:Protocal相关类transport:transport相关类server:server相关类4.1 Transport类(how is transmitted?)负责数据传输,有以下几个可用类:TFileTransport:文件(日志)传输类,允许client将文件传给server,允许server将收到的数据写到文件中。THttpTransport:采用Http传输协议进行数据传输TSocket:采用TCP Socket进行数据传输TZlibTransport:压缩后对数据进行传输,或者将收到的数据解压下面几个类主要是对上面几个类地装饰(采用了装饰模式),以提高传输效率。TBufferedTransport:对某个Transport对象操作的数据进行buffer,即从buffer中读取数据进行传输,或者将数据直接写入bufferTFramedTransport:同TBufferedTransport类似,也会对相关数据进行buffer,同时,它支持定长数据发送和接收。TMemoryBuffer:从一个缓冲区中读写数据4.2 Pr

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档