最近做的项目是使用CXF编写Service,给公司的其他项目提供接口的。由于需求问题,改用Thrift。下面就总结下自己学习Apache Thrift的内容,和例子。
1. 下载thrift-0.9.0.exe 。我使用的是win7系统,将该文件复制到C盘Windows下,并改名thrift.exe方便执行命令。运行cmd.exe。输入命令
thrift -version
输出Thrift version 0.9.0则可以使用该命令。
2.编写HelloWorld.thrift(D:\)。
namespace java com.test.rpc
service TestService {
string getUsername(1:i32 id);
}
在之前打开的cmd.exe中,切换路径到存放thrift文件的文件夹下,执行命令:
D:
thrift --gen java HelloWorld.thrift
没有报错的话,在D盘下会生成一个文件夹gen-java ,刚刚执行命令生成的文件com\test\rpc\TestService.java
TestService.java是编译好的客户端和服务端的支持代码。
3.新建一个工程,将com文件夹直接考到工程的src下。或者可以将文件添加到已有的项目中。
工程导入Thrift相关的jar包。简单的编写服务和客户端。
libthrift.jar
log4j-1.2.16.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
4.编写接口的实现类
public class ThriftServer implement TestService.Iface{
public String getUsername(int id){
if(id>0){
return "Hello Join!";
} else {
return "not exist!";
}
}
public static void main(String[] args){
try{
ThriftServer t = new ThriftServer();
TestService.Processor p = new TestService.Processor(t);
TServerTransport serverTransport = new TServerTransport(9090);
TServer server = new TThreadPoolServer(p, serverTransport);
System.out.println("Starting the server ...");
server.serve();
}catch (Exception e){
e.printStackTrace();
}
}
}
5.编写客户端代码
public class ThriftClient{
public static void main(String[] args){
TTransport transport = new TSocket("localhost", 9090);
TProtocol protocol = new TBinaryProtocol(transport);
TestService.Client cient = new TestService.Client(protocol);
try{
transport.open();
String str = client.getUsername(10);
System.out.println(str);
} catch(TException e){
e.printStackTrace();
} finally {
transport.close();
}
}
}
6.执行ThriftServer文件,启动服务
7.执行ThriftClient文件,测试
分享到:
相关推荐
常见的RPC框架有gRPC、Thrift、Dubbo、HSF等,每种框架都有其特点和适用场景。例如,gRPC基于HTTP/2协议,支持Protobuf协议,性能高效;Thrift由Facebook开发,提供多语言支持;Dubbo是阿里巴巴开源的高性能RPC框架...
### Hive学习笔记(更新版) #### 一、Hive简介 Hive 是一款构建于 Hadoop 之上的数据仓库工具,旨在提供一种简单易用的方法处理存储在 Hadoop 文件系统 (HDFS) 中的大量数据集。它允许用户使用类似于 SQL 的语言...
### Spark SQL 学习笔记知识点总结 #### 一、Spark SQL 概述 - **定义**:Spark SQL 是 Apache Spark 的一个模块,用于处理结构化数据。它提供了 DataFrame 和 Dataset API,以及支持 SQL 查询的能力。这些特性...
在数据结构的学习笔记和资料中,C/C++/JAVA/Python是常见的编程语言,它们各自都有独特的方法来实现和操作数据结构。例如,C/C++提供了底层内存管理,使得直接操作数据结构更为灵活,而Java和Python则提供了高级抽象...
《Hive编程技术与应用》学习笔记主要涵盖了Hive的基础知识、工作原理、架构、数据类型、设计特点以及元数据库等内容。以下是对这些知识点的详细解释: 1. **Hive的基本内容** - **概述**:Hive是基于Hadoop的数据...
Thrift 是一个强大的开源框架,由 Facebook 在 2007 年开发,旨在解决多语言服务通信的问题。它的核心思想是提供一种高效、简洁的方式来定义服务接口,并自动生成多种编程语言的代码,使得开发者可以在不同的语言...
8. 支持Hadoop/HDFS集成、MapReduce、多种API(Java、Thrift、RESTful)以及监控和运维工具。 【列式存储与行式存储对比】 列式存储相比行式存储,具有更高效的数据读取效率,尤其在处理大数据分析场景时,因为列...
# SpringCloud课堂笔记知识点解析 ## 一、微服务概述 ### 1.1 微服务定义 微服务架构作为一种新兴的设计模式,旨在通过将单个应用程序分解为多个小型、独立的服务来提升软件的可扩展性和灵活性。这些服务通常遵循...
1. **Sources**: Flume支持多种类型的数据源,包括简单的命令行输入、网络套接字、Avro、Thrift等。例如,你可以使用Avro Source来收集来自Web服务器的日志数据。 2. **Channels**: 数据在被发送到Sinks之前会暂存在...
### Hive入门文档笔记 #### 一、Hive简介与安装配置 Hive 是一个构建在 Hadoop 之上的数据仓库工具,它通过提供 SQL 查询功能,使得用户可以更方便地处理存储在 Hadoop 分布式文件系统(HDFS)中的大规模数据集。...
### SpringCloud微服务基础知识解析 #### 一、项目架构演进概述 在现代软件开发过程中,随着业务复杂度和技术...然而,微服务也带来了诸如服务治理、数据一致性等新的挑战,这需要开发者在实际应用中持续学习和探索。
在建议信中,一些关键的词汇和表达值得考生学习,例如:“extravagant”(奢侈的)、“laptop computer”(笔记本电脑)、“thrift”(节俭)等。这些词汇的准确运用能提升文章的表达力和专业度。 其次,辞职信的...
Spark应用程序可以通过多种方式提交,包括命令行接口(CLI)、Thrift服务器、像Zeppelin、Jupyter和Hue这样的笔记本、ETL工具以及像Airflow、Autosys、Control-M、Oozie、Tidal和TWS这样的调度器。 5. Spark运行...