首页 理论教育 实现Thrift通信的简单例子

实现Thrift通信的简单例子

时间:2023-07-02 理论教育 版权反馈
【摘要】:本节讲解的Thrift实例,是Thrift开发的“Hello World”示例。本节Thrift例子包括服务器代码编写、客户端代码编写、Thrift服务接口描述脚本编写。本节Thrift例子中服务器编写的一般步骤如下:1)创建Handler:消息处理者,负责消息的发送及处理。我们将通过这个简单的Thrift实现示例,来让大家直观地了解什么是Thrift以及如何使用Thrift构建服务。1)首先根据Thrift的语法规范编写脚本文件:Hello.thrift。

实现Thrift通信的简单例子

本节讲解的Thrift实例,是Thrift开发的“Hello World”示例。整个过程为:先启动Thrift服务端服务,再启动客户端,客户端调用服务端helloVoid方法,实现在服务端打印输出“Hello World”。本节Thrift例子包括服务器代码编写、客户端代码编写、Thrift服务接口描述脚本编写。在7.4节还将讲解Spark Thrift Server应用示例,通过JDBC访问Spark Thrift Server,Spark Thrift Server访问Spark SQL,然后通过Spark SQL操作Hive数据库的数据。

本节Thrift例子中服务器编写的一般步骤如下:

1)创建Handler:消息处理者,负责消息的发送及处理。

2)基于Handler创建Processor。

3)创建Transport。

4)创建Protocol方式。

5)基于Processor,Transport和Protocol创建Server。

6)运行Server。

客户端编写的一般步骤如下:

1)创建Transport。

2)创建Protocol方式。

3)基于Transport和Protocol创建Client。(www.xing528.com)

4)运行Client的方法。

我们将通过这个简单的Thrift实现示例,来让大家直观地了解什么是Thrift以及如何使用Thrift构建服务。

下面将创建一个简单的服务Hello,实现helloString、helloInt、helloBoolean、helloVoid、helloNull等接口功能。可以在集成开发环境如IntelliJ IDEA Community Edition、Eclipse Jee Neon进行开发。Hello业务逻辑的服务端、客户端、Thrift的语法规范文件由用户自己开发编写,Thrift框架的服务器、客户端框架代码由Apache Thrift框架自动编码。

1)首先根据Thrift的语法规范编写脚本文件:Hello.thrift。Hello.thrift可以使用记事本编辑,也可以使用集成开发环境如IntelliJ IDEA Community Edition、Eclipse Jee Neon等开发工具进行编辑,文件后缀名使用.thrift保存。

其中定义了服务Hello的五个方法,每个方法包含一个方法名,参数列表和返回类型。每个参数包括参数序号,参数类型以及参数名。

Thrift是对IDL(Interface Definition Language)描述性语言的一种具体实现。因此,以上的服务描述文件使用IDL语法编写。使用Thrift工具编译Hello.thrift,就会生成相应的Hel-lo.java文件。该文件包含了在Hello.thrift文件中描述的服务Hello的接口定义,即Hel-lo.Iface接口,以及服务调用的底层通信细节,包括客户端的调用逻辑Hello.Client以及服务器端的处理逻辑Hello.Processor,用于构建客户端和服务器端的功能。

2)创建HelloServiceImpl.java文件并实现Hello.java文件中的Hello.Iface接口。

3)创建服务器端实现代码文件:HelloServiceServer.java,将HelloServiceImpl作为具体的处理器传递给Thrift服务器。

4)创建客户端实现代码文件:HelloServiceClient.java,调用Hello.client访问服务端的逻辑实现。

代码编写完后,先运行服务器HelloServiceServer.java,再启动客户端HelloService-Client.java调用服务Hello的方法helloVoid,可在服务器端的控制台窗口输出“Hello World”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈