美文网首页
2.Thrift指南 .thrift文件

2.Thrift指南 .thrift文件

作者: parker7 | 来源:发表于2018-09-21 09:42 被阅读0次

前言:在一个 .thrift 文件内定义服务,并用 thrift 工具生成服务接口。

1..thrift文件
2.thrift工具

1..thrift文件

.thrift文件语法-官方文档
接口文件是rpc开发的第一步,通过定义服务来约束服务端、客户端开发人员,不致于跑偏。(类似于我们的api文档)

# 命名空间,可以不写也可以写多个,按照使用服务端、客户端语言来写即可
namespace go thrift.user
namespace php thrift.user

# 定义一个用户结构
struct UserInfo {
    #序号:字段类型 字段名
    1:i64 id
    2:string username
    3:string password
    4:string email
}

# 定义一个用户服务
service User{
    # 定义一个GetUser方法(接收一个用户id,返回上面定义的用户信息)
    UserInfo GetUser(1:i32 id)
    # 定义一个GetName方法(接收一个用户id,返回用户名称)
    string GetName(1:i32 id)
   
   # 方法定义格式:
   # 返回的类型 方法名(序号:参数类型 参数名 ... )
   # bool Test(1:i32 id, 2:string name, 3:i32 age ... )
}

2.thrift工具

由于我们的编程语言代码是无法识别.thrift文件定义的接口的,所以需要工具帮助我们将.thrift文件翻译成对应语言接口代码。
thrift官方的thrift工具正好做这些事,这也为rpc框架跨语言打下基础。(相当于翻译官)

# 1.安装thrift工具。
# 我这里是Mac系统,采用 homebrew安装(这里为0.11.0版本)
➜  ~ brew install thrift

# 检测thrift是否安装成功
➜  ~ thrift -version
Thrift version 0.11.0

thrift可以帮助我们根据.thrift文件生产不同语言服务接口,就像下面这样:
thrift -out . --gen go user.thrift

  • -out . 指定输出目录为当前目录
  • --gen go user.thrift 指定使用go生成器,根据user.thrift文件,生成go语言代码(如下图)

总结

.thrift文件是rpc开发的第一步,第二步按照服务接口实现服务端。

.thrift文件语法 [http://thrift.apache.org/docs/types]

相关文章

网友评论

      本文标题:2.Thrift指南 .thrift文件

      本文链接:https://www.haomeiwen.com/subject/aztanftx.html