thrif开发指南.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
thrif开发指南

一、About? thrift??? 二、什么是thrift,怎么工作?? 三、Thrift? IDL? 四、Thrift?? Demo? 五、Thrift 协议栈 以及各层的使用(java 为例)? 六、与protocolbuffer的区别? 一、About? thrift??? ???????? thrift是一种可伸缩的跨语言服务的发展软件框架。它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,工作效率和无缝地与C + +,C#,Java,Python和PHP和Ruby结合。thrift是facebook开发的,我们现在把它作为开源软件使用。thrift允许你定义一个简单的定义文件中的数据类型和服务接口。以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言(来自百度百科)。???? ? 最初由facebook开发用做系统内个语言之间的RPC通信 。? ? 2007年由facebook贡献到apache基金 ,现在是apache下的opensource之一 。? ? 支持多种语言之间的RPC方式的通信:php语言client可以构造一个对象,调用相应的服务方法来调用java语言的服务 ,跨越语言的C/S?? rpc? 调用 。? 二、什么是thrift,怎么工作?? java? rmi的例子,代码见附件,建立一个java rmi的流程? :? ? 定义一个服务调用接口 。? ? server端:接口实现---impl的实例---注册该服务实现(端口)---启动服务。? ? client端:通过ip、端口、服务名,得到服务,通过接口来调用 。? ? rmi数据传输方式:java对象序列化 。? Thrift? 服务?? ? 例同rmi ,需要定义通信接口、实现、注册服务、绑定端口……? ? 如何多种语言之间通信? ?? ? 数据传输走socket(多种语言均支持),数据再以特定的格式(String ),发送,接收方语言解析?? 。? ??????? Object ---? String ---? Object? 。? ??? 问题:编码、解析完全需要自己做 ,复杂的数据结构会编码困难 .? Thrift? 服务 :thrift的中间编码层? ? java? Object --- Thrift? Object --- php? Object??? ? 定义thrift的文件 ,由thrift文件(IDL)生成 双方语言的接口、model ,在生成的model以及接口中会有解码编码的代码 。? ? thrift?? 文件例子? ???? thrift-0.7.0.exe?? -r?? -gen? java??? TestThrift.thrift??? 生成java 代码? ???? thrift-0.7.0.exe?? -r?? -gen? php??? TestThrift.thrift??? 生成php代码? ???? thrift-0.7.0.exe?? -r?? -gen? py?????? TestThrift.thrift??? 生成python代码? ???? thrift-0.7.0.exe?? -r?? -gen? as3???? TestThrift.thrift??? 生成as3代码? ???? thrift-0.7.0.exe?? -r?? -gen? cpp???? TestThrift.thrift??? 生成C++代码? 三、Thrift? IDL? ????????????????? ?????? /tianhuilove/archive/2011/09/05/2167669.html? ?????? /thrift/? ??????????? ?????? /thrift/ThriftTypes? 四、Thrift?? Demo? Thrift? IDL 文件? Java代码?? namespace?java?com.gemantic.analyse.thrift.index?? ?? struct??NewsModel{?? 1:i32?id?;?? 2:string?title;?? 3:string?content;?? 4:string?media_from;?? 5:string?author;?? }?? ?? service?IndexNewsOperatorServices?{?? bool?indexNews(1:NewsModel?indexNews),?? bool?deleteArtificiallyNews(1:i32?id?)?? }?? java? server? Java代码?? package?c

文档评论(0)

jiqingyong12 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档