Thrift交流(一)简单的Thrift

Thrift是一个可伸缩的跨语言的服务开发框架,是facebook开发的一个跨语言通信平台。为各种语言提供快捷的rpc服务。现阶段已经支持C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml等语言。在近来的工作中,重新学习Thrift通信的内容,和大家做个简单的交流。

Thrift示意图

1)安装Thrift环境

Thrift的环境的安装并不复杂,我们现在以最简单的windows环境做个案例。

首先在官方网站下载最新的thrift exe文件,

然后把exe文件改名为thrift.exe,放在了windows的目录下,如图所示:

接着配置thrift环境变量:

测试Thrift运行环境:

2)编写Thrift文件

thrift文件如下

namespace java thrift // defines the namespacetypedef i32 int //typedefs to get convenient names for your typesservice ThriftService { int add(1:int a,2:int b),}通过命令行执行Thrift文件,,并生成

3)建立Thrift工程

首先建立maven工程,把如下内容加到pom.xml

<dependency><groupId>org.apache.thrift</groupId><artifactId>libthrift</artifactId><version>0.9.0</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.5</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.5</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.5</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>编写ThriftService的实现类:

代码如下:

package thrift;import org.apache.thrift.TException;public class ThriftServiceImpl implements Iface {@Overridepublic int add(int a, int b) throws TException {return a + b;}}4)编写服务器及测试package com.duowan.yy.thriftTest;import org.apache.thrift.TProcessor;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TBinaryProtocol.Factory;import org.apache.thrift.server.TServer;import org.apache.thrift.server.TSimpleServer;import org.apache.thrift.transport.TServerSocket;import org.apache.thrift.transport.TTransportException;import thrift.ThriftService;import thrift.ThriftServiceImpl;public class ThriftServer {public static void main(String[] args) {try {TServerSocket serverTransport = new TServerSocket(7911);Factory proFactory = new TBinaryProtocol.Factory();TProcessor processor = new ThriftService.Processor<ThriftService.Iface>(new ThriftServiceImpl());TServer.Args tArgs = new TServer.Args(serverTransport);tArgs.processor(processor);tArgs.protocolFactory(proFactory);TServer server = new TSimpleServer(tArgs);System.out.println("Start server on port 7911….");server.serve();} catch (TTransportException e) {e.printStackTrace();}}}

测试启动:

赚钱之道很多,但是找不到赚钱的种子,便成不了事业家。

Thrift交流(一)简单的Thrift

相关文章:

你感兴趣的文章:

标签云: