`
sleepingxu
  • 浏览: 11541 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Thrift 的学习笔记

阅读更多

    最近做的项目是使用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入门学习笔记

    常见的RPC框架有gRPC、Thrift、Dubbo、HSF等,每种框架都有其特点和适用场景。例如,gRPC基于HTTP/2协议,支持Protobuf协议,性能高效;Thrift由Facebook开发,提供多语言支持;Dubbo是阿里巴巴开源的高性能RPC框架...

    Hive学习笔记(更新版)

    ### Hive学习笔记(更新版) #### 一、Hive简介 Hive 是一款构建于 Hadoop 之上的数据仓库工具,旨在提供一种简单易用的方法处理存储在 Hadoop 文件系统 (HDFS) 中的大量数据集。它允许用户使用类似于 SQL 的语言...

    Spark SQL学习笔记

    ### Spark SQL 学习笔记知识点总结 #### 一、Spark SQL 概述 - **定义**:Spark SQL 是 Apache Spark 的一个模块,用于处理结构化数据。它提供了 DataFrame 和 Dataset API,以及支持 SQL 查询的能力。这些特性...

    根据 .thrift 获取数据结构,生成 mock 数据.zip

    在数据结构的学习笔记和资料中,C/C++/JAVA/Python是常见的编程语言,它们各自都有独特的方法来实现和操作数据结构。例如,C/C++提供了底层内存管理,使得直接操作数据结构更为灵活,而Java和Python则提供了高级抽象...

    《Hive编程技术与应用》学习笔记.pdf

    《Hive编程技术与应用》学习笔记主要涵盖了Hive的基础知识、工作原理、架构、数据类型、设计特点以及元数据库等内容。以下是对这些知识点的详细解释: 1. **Hive的基本内容** - **概述**:Hive是基于Hadoop的数据...

    Thrift功能简介

    Thrift 是一个强大的开源框架,由 Facebook 在 2007 年开发,旨在解决多语言服务通信的问题。它的核心思想是提供一种高效、简洁的方式来定义服务接口,并自动生成多种编程语言的代码,使得开发者可以在不同的语言...

    HBase学习笔记(个人整理)

    8. 支持Hadoop/HDFS集成、MapReduce、多种API(Java、Thrift、RESTful)以及监控和运维工具。 【列式存储与行式存储对比】 列式存储相比行式存储,具有更高效的数据读取效率,尤其在处理大数据分析场景时,因为列...

    周阳SpringCloud课堂笔记

    # SpringCloud课堂笔记知识点解析 ## 一、微服务概述 ### 1.1 微服务定义 微服务架构作为一种新兴的设计模式,旨在通过将单个应用程序分解为多个小型、独立的服务来提升软件的可扩展性和灵活性。这些服务通常遵循...

    大数据技术之Flume笔记

    1. **Sources**: Flume支持多种类型的数据源,包括简单的命令行输入、网络套接字、Avro、Thrift等。例如,你可以使用Avro Source来收集来自Web服务器的日志数据。 2. **Channels**: 数据在被发送到Sinks之前会暂存在...

    hive入门文档笔记

    ### Hive入门文档笔记 #### 一、Hive简介与安装配置 Hive 是一个构建在 Hadoop 之上的数据仓库工具,它通过提供 SQL 查询功能,使得用户可以更方便地处理存储在 Hadoop 分布式文件系统(HDFS)中的大规模数据集。...

    SpringCloud微服务笔记

    ### SpringCloud微服务基础知识解析 #### 一、项目架构演进概述 在现代软件开发过程中,随着业务复杂度和技术...然而,微服务也带来了诸如服务治理、数据一致性等新的挑战,这需要开发者在实际应用中持续学习和探索。

    考研英语高分作文黄金模板预测作文及点评

    在建议信中,一些关键的词汇和表达值得考生学习,例如:“extravagant”(奢侈的)、“laptop computer”(笔记本电脑)、“thrift”(节俭)等。这些词汇的准确运用能提升文章的表达力和专业度。 其次,辞职信的...

    大数据技术分享 Spark技术讲座 使用Apache Spark调整Spark 共45页.pdf

    Spark应用程序可以通过多种方式提交,包括命令行接口(CLI)、Thrift服务器、像Zeppelin、Jupyter和Hue这样的笔记本、ETL工具以及像Airflow、Autosys、Control-M、Oozie、Tidal和TWS这样的调度器。 5. Spark运行...

Global site tag (gtag.js) - Google Analytics