Netty框架入门学习--Thrift的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33151213/article/details/90814201

Apache Thrift 是一个可伸缩的,跨语言的RPC通信服务开发框架,将软件栈与代码生成引擎相结合,在C++、Java、Python、PHP、JavaScripti等语言中可以高效、无缝地构建服务。
Thrift是一个CS 结构,客户端和服务端可以使用不用的语言进行开发,通过一个中间语言IDL(Interface Description Language)来关联。

准备工作:

1.Apache Thrift software framework,Thrift官方文档
2.下载安装Thrift,下载地址:http://thrift.apache.org/download
下载完成之后,将下载的文件名更改成thrift.exe,然后将文件所在路径配置到Path环境变量里面。
在这里插入图片描述
在这里插入图片描述

配置完成后,确认下thrift是否安装成功。thrift -version
在这里插入图片描述

编写thrift文件

官网ThriftTest.thrift文件示例

在项目中新建一个data.thrift文件

//定义一个包名,语言是Java
namespace java thrift.generated

//定义数据类型别名,根据我们的习惯把thrift数据类型改成Java的数据类型,这样我们可以方便使用
typedef i16 short //通过typedef定义i16为short
typedef i32 int
typedef i64 long
typedef bool boolean
typedef string String

struct Person {
    1: optional String username, //默认就是optional类型
    2: optional int age,
    3: optional boolean married
}

exception DataException {
    1: optional String message,
    2: optional String callStack,
    3: optional String date //thrift不支持日期类型,用字符串表示
}

//用service定义接口方法
service PersonService {
    Person getPersonByUsername(1: required String username) throws (1: DataException dataException)

    void savePerson(1: required Person person) throws (1: DataException dataException)
}
生成文件目标语言代码

生成命令:

thrift --gen java data.thrift

接着我们在idea打开命令终端来输入thrift生成命令,我没用idea自带终端窗口,用的是cmder这个软件,有需要的可以去cmder网站去下载,很好用这个终端工具。
在这里插入图片描述

执行完生成命令,不出意外的话,在我们的项目里面可以看到生成好的文件了。
在这里插入图片描述

Gradle引用thrift依赖
"org.apache.thrift:libthrift:0.12.0"

Thrift客户端和服务端

我们 src/main/java新建一个目录 thrift/generated,将生成的thrift文件放到这个目录下。

在这里插入图片描述

新建一个类实现thrift生成文件类

PersonServiceImpl
在这里插入图片描述

服务端

ThriftServer
在这里插入图片描述

客户端

ThriftClient
在这里插入图片描述


启动服务端和客户端:

服务端控制台打印:
在这里插入图片描述

客户端控制台打印:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sinat_33151213/article/details/90814201