thrift的简单实现
1.使用windows实现,首先在apache官网下载一个thrift的编译工具,在项目中建一个文件叫add.thrift的文件,内容如下:
namespace java com.vipshop.sample.server
service AdditionService{
i32 add(1:i32 n1,2:i32 n2)
}
使用下载的thrift工具进行编译,命令如下thrift --gen java add.thrift(本人使用的是java实现) 编译后会生成一个叫AdditionService.java 的文件
2 把这个文件添加到项目中(需要的jar包有两个,一个是thrift的jar包,要自己去生成,一个是slf4j jar包),目录结构如下:

3 新建一个名叫AdditionServiceHandle的java文件,来实现我们在AdditionService中所需要实现的方法
import org.apache.thrift.TException;
public class AdditionServiceHandle implements AdditionService.Iface{
@Override
public int add(int n1, int n2) throws TException {
// TODO Auto-generated method stub
return n1+n2;
}
}
4 编写服务端,代码如下
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TSimpleServer;
import org.apache.thrift.transport.TServerSocket;
import org.apache.thrift.transport.TServerTransport; public class MyServer { public static void startsImpleServer(AdditionService.Processor<AdditionServiceHandle> processor){
try
{
TServerTransport serverTransport=new TServerSocket(9090);
TServer server=new TSimpleServer(new TServer.Args(serverTransport).processor(processor)); System.out.println("starting the simple server....");
server.serve();
}
catch (Exception e)
{
// TODO: handle exception
}
} public static void main(String[] args) {
startsImpleServer(new AdditionService.Processor<AdditionServiceHandle>(new AdditionServiceHandle()));
} }
5 编写客户端
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport; public class AdditionClient {
public static void main(String[] args) {
try
{
TTransport transport;
transport=new TSocket("localhost",9090);
transport.open(); TProtocol protocol=new TBinaryProtocol(transport);
AdditionService.Client client=new AdditionService.Client(protocol);
System.out.println(client.add(100, 200));
transport.close();
}
catch (Exception e)
{
// TODO: handle exception
}
}
}
6运行服务器端和客户端,结果客户端为300
thrift的简单实现的更多相关文章
- Apache Thrift的简单使用
Apache Thrift的简单使用 ---------------------- 1. 简介 Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架.它有一个代码生成器来对它所 ...
- Apache Thrift的简单介绍
1.什么是Thrift thrift是一种可伸缩的跨语言服务的发展软件框架.它结合了功能强大的软件堆栈的代码生成引擎,以建设服务.不同开发语言开发的服务可以通过该框架实现通信. thrift是face ...
- Thrift简单实践
0.什么是RPC RPC(Remote Procedure Call - 远程过程调用),是通过网络从远程计算机上请求服务,而不需要了解底层网路技术的细节.简单点说,就是像调用本地服务(方法)一样调用 ...
- Thrift的安装和简单演示样例
本文仅仅是简单的解说Thrift开源框架的安装和简单使用演示样例.对于具体的解说,后面在进行阐述. Thrift简述 ...
- thrift简单示例 (go语言)
这个thrift的简单示例来自于官网 (http://thrift.apache.org/tutorial/go), 因为官方提供的例子简单易懂, 所以没有必要额外考虑新的例子. 关于安装的教程, 可 ...
- thrift简单示例 (基于C++)
这个thrift的简单示例, 来源于官网 (http://thrift.apache.org/tutorial/cpp), 因为我觉得官网的例子已经很简单了, 所以没有写新的示例, 关于安装的教程, ...
- python thrift 服务端与客户端使用
一.简介 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, ...
- node(thrift)
thrift是一种跨语言的RPC框架,据说uber采在node.js项目中采用thrfit后,比原有的http+json的方式提高近20倍的性能. 所谓的RPC本质上就是客户端将需要调用的方法名和参数 ...
- Apache Thrift - 可伸缩的跨语言服务开发框架
To put it simply, Apache Thrift is a binary communication protocol 原文地址:http://www.ibm.com/developer ...
随机推荐
- HBase Compact
Region Compact请求是在Region MemStore Flush之后被触发的: boolean shouldCompact = region.flushcache(); // We ju ...
- where T:class 泛型类型约束
对于一个定义泛型类型为参数的函数,如果调用时传入的对象为T对象或者为T的子类,在函数体内部如果需要使用T的属性的方法时,我们可以给这个泛型增加约束: 类的定义 public class Product ...
- Struts2初学习记录
以下笔记内容来自尚硅谷_Struts2_佟刚老师的视频教程+自己一点点整理 来源免责声明 一. 1. VS 自实现: 1). 搭建 Struts2 的开发环境 2). 不需要显式的定义 Filter, ...
- java排序算法-交换排序
public class ExchangeSortUtils { // 冒泡 public static void bubbleSort(int[] array) { int length = arr ...
- SCOPE 中 SPFILE、MEMORY、BOTH 的小小区别
ALTER SYSTEM 中 SCOPE=SPFILE/MEMORY/BOTH 的区别: SCOPE = SPFILE The change is applied in theserverparame ...
- windows下的类似grep命令findstr
windows下的类似grep命令findstr findstr后面跟的字符串不能加引号 C:\Users\Administrator>netstat -an|findstr 10.1.151 ...
- javascript动态改变当前页面中元素的状态行为
function Datea() { var timed = document.getElementById('timed'); var t = setInterval(function TDate( ...
- Resizable 2th click not working
here's a simple solution. just destroy the resizable function, then rebuild it. try { $("#div& ...
- 集群中几种session同步解决方案的比较
1. 客户端cookie加密 .比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此session实现. 问题:session中数据不能太多,最好只有个用户id. Sessi ...
- FineUI初学手册
女朋友鄙视我原创少... 1.下载 进入官方论坛:http://www.fineui.com/bbs/ 要用到下载源代码和空项目下载 http://fineui.codeplex.com/ http: ...