Thrift交流(一)简单的Thrift
2013-10-28 15:24
113 查看
Thrift是一个可伸缩的跨语言的服务开发框架,是facebook开发的一个跨语言通信平台。为各种语言提供快捷的rpc服务。现阶段已经支持C++,
Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml等语言。在近来的工作中,重新学习Thrift通信的内容,和大家做个简单的交流。
Thrift示意图
1)安装Thrift环境
Thrift的环境的安装并不复杂,我们现在以最简单的windows环境做个案例。
首先在官方网站下载最新的thrift exe文件,http://thrift.apache.org/download/
然后把exe文件改名为thrift.exe,放在了windows的目录下,如图所示:
接着配置thrift环境变量:
测试Thrift运行环境:
2)编写Thrift文件
thrift文件如下
通过命令行执行Thrift文件,并生成
3)建立Thrift工程
首先建立maven工程,把如下内容加到pom.xml
编写ThriftService的实现类:
代码如下:
4)编写服务器及测试
测试启动:
编写测试类:
效果如下:
简单的Thrift之旅已经完成了,希望大家玩的开心。
Thrift交流(二)thrift服务端和客户端实现
Nifty /article/8124729.html
Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml等语言。在近来的工作中,重新学习Thrift通信的内容,和大家做个简单的交流。
Thrift示意图
1)安装Thrift环境
Thrift的环境的安装并不复杂,我们现在以最简单的windows环境做个案例。
首先在官方网站下载最新的thrift exe文件,http://thrift.apache.org/download/
然后把exe文件改名为thrift.exe,放在了windows的目录下,如图所示:
接着配置thrift环境变量:
测试Thrift运行环境:
2)编写Thrift文件
thrift文件如下
namespace java thrift // defines the namespace typedef i32 int //typedefs to get convenient names for your types service 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 { @Override public 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(); } } }
测试启动:
编写测试类:
package com.duowan.yy.thriftTest; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.protocol.TProtocol; import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; import org.apache.thrift.transport.TTransportException; import thrift.ThriftService; public class Test { /** * @param args */ public static void main(String[] args) { try { TTransport transport = new TSocket("localhost", 7911); transport.open(); TProtocol protocol = new TBinaryProtocol(transport); ThriftService.Client client = new ThriftService.Client(protocol); System.out.println(client.add(77, 5)); transport.close(); } catch (TTransportException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (TException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
效果如下:
简单的Thrift之旅已经完成了,希望大家玩的开心。
Thrift交流(二)thrift服务端和客户端实现
Nifty /article/8124729.html
相关文章推荐
- Thrift交流(一)简单的Thrift
- Thrift交流(一)简单的Thrift
- Thrift交流(一)简单的Thrift
- 团队交流合作简单解决方案:TeamViewer远程控制&会议演示 + HyperCam屏幕录制(免费)
- 【springMVC】简单的前后端数据交流
- hbase thrift C++ 简单测试
- python 通过thrift 简单操作hbase
- java Socket 的简单使用 实现对话交流功能
- java Socket 的简单使用 实现对话交流功能
- Thrift在Java中的简单实例(四)
- 从现在开始学习一下在 Office 平台上进行开发一些简单的应用程序,欢迎有从事这方面的高手和同道指点交流。
- python 通过thrift 简单操作hbase
- Apache Thrift的简单使用
- (菜鸟交流)简单注册系统实现
- java Socket 的简单使用 实现对话交流功能
- java Socket 的简单使用 实现对话交流功能
- Thrift的安装方法和简单实例
- thrift 简单安装以及rpc使用心得
- Thrift的安装和简单使用
- FF的插件iMacros简单交流