2.Thrift指南 .thrift文件


前言:在一个 .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]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容