首页 理论教育 Thrift的运行机制解析

Thrift的运行机制解析

时间:2023-07-02 理论教育 版权反馈
【摘要】:Apache Thrift包含一个完整的堆栈结构用于构建客户端和服务器端,Thrift的体系架构如下图7-2所示:Thrift体系架构分析说明如下:用户开发者编写的脚本及代码1)用户定义编写Thrift服务接口描述脚本,如Hello.thrift。Apache Thrift框架自动编码1)Apache Thrift自动生成客户端框架代码。2)Apache Thrift根据用户定义的Thrift定义的服务接口描述文件自动生成服务器端框架代码。3)Apache Thrift同时也生成数据的读写操作方法。

Thrift的运行机制解析

Apache Thrift包含一个完整的堆栈结构用于构建客户端和服务器端,Thrift的体系架构如下图7-2所示:

Thrift体系架构分析说明如下:

(1)用户开发者编写的脚本及代码

1)用户定义编写Thrift服务接口描述脚本,如Hello.thrift。

2)用户编写服务器端业务代码:实现用户自己服务端的业务逻辑代码。

3)用户编写客户端业务代码:实现用户自己客户端的业务逻辑代码。

(2)Apache Thrift框架自动编码

1)Apache Thrift自动生成客户端框架代码。客户端框架代码按照服务接口描述文件生成。

2)Apache Thrift根据用户定义的Thrift定义的服务接口描述文件(如Hello.thrift)自动生成服务器端框架代码。

3)Apache Thrift同时也生成数据的读写操作方法。

(3)使用Thrift选择不同的传输协议

例如:

使用TCompactProtocol协议构建的HelloServiceServer.java;

978-7-111-59197-9-Chapter07-2.jpg

978-7-111-59197-9-Chapter07-3.jpg

图7-2 Thrift体系架构图

使用TCompactProtocol协议的HelloServiceClient.java;

TCompactProtocol protocol=new TCompactProtocol(transport);(www.xing528.com)

(4)使用Thrift选择不同的传输层

例如:

使用TFramedTransport传输层构建的HelloServiceServer.java;

978-7-111-59197-9-Chapter07-4.jpg

使用TFramedTransport传输层的HelloServiceClient.java;

TTransport transport=new TFramedTransport(new TSocket("localhost",10005));

(5)Thrift支持的服务模型:

●TSimpleServer—简单的单线程服务模型,常用于测试。

●TThreadedServer—多线程服务模型,使用阻塞式IO,每个请求创建一个线程。

●TThreadPoolServer—线程池服务模型,使用标准的阻塞式IO,预先创建一组线程处理请求。

●TNonblockingServer—多线程服务模型,使用非阻塞式IO(需使用TFramedTransport数据传输方式)。

使用TSimpleServer服务端构建的HelloServiceServer.java

TServerSocket serverTransport=new TServerSocket(7911);

TProcessor processor=new Hello.Processor(new HelloServiceImpl());

TServer server=new TSimpleServer(processor,serverTransport);

System.out.println("Start server on port 7911...");

server.serve();

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

我要反馈