Thrift架构简介

本文介绍了Thrift的发展历程、特色和一个Python实现的例子。通过一个简单的Hello服务,展示了Thrift的服务定义和生成代码的过程。同时,文章详细讨论了Thrift的数据类型,包括基本类型、结构体、容器和异常类型。还探讨了多种传输方式,如TSocket、THttpTransport、TFramedTransport等。最后,提到了Thrift的服务方式及其未来的发展方向。
摘要由CSDN通过智能技术生成

发展历程

Thrift最初由facebook开发用做系统内各语言之间的RPC通信。
2007年由facebook贡献到apache基金 ,085月进入apache孵化器。
目前支持的语言有C++, Java, Python, PHP, Ruby,Erlang, Perl,Haskell, C#, Cocoa, JavaScript,Node.js, Smalltalk, andOcaml可以在不同语言之间实现C/S RPC调用。

特色

传输数据采用二进制格式,相对XMLJSON体积更小,对于高并发、大数据量和多语言的环境更有优势。
Thrift允许你定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。

例子_Python

首先介绍一个简单的 Thrift 实现实例,使大家能够快速直观地了解什么是 Thrift 以及如何使用 Thrift 构建服务。

创建一个简单的服务 Hello。首先根据 Thrift 的语法规范编写脚本文件 Hello.thrift,代码如下:

struct MessageMeta {
    1:i32 mid;
    2:string subject;
    3:i32 lablel0;
    4:string from_where;
    5:string to_where;
    6:i64 modifiedDate;
    7:i64 receivedDate;
    8:i64 sentDate;
}


service Hello{
    string helloString(1:string para, 2:string para2)
    MessageMeta hellowMessage(1:MessageMeta message)
 }

其中定义了一个数据结构 MessageMeta,由八个属性,包括INT32、STRING,INT64等类型。

定义了一个服务Hello,包括两个方法,每个方法都定义了参数列表以及返回值类型,每个参数包括参数序号,参数类型以及参数名。

之后在linux下执行 thrift -gen py Hello.thrift。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值