`
liyonghui160com
  • 浏览: 771799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

windows配置thrift开发环境

阅读更多

最近在研究使用thrift,由于后端服务是java提供,前端使用C#程序,要开发一套C#的thrift客户端,将过程整理如下:

 

1)安装thrift:到thrift官网下载exe文件,然后将文件重命名为thrift.exe,拷贝到c:\windows目录下(或者任何目录下),然后就可以在dos环境下使用了

c:\windows>thrift -gen java D:\mywork\javaProject\thriftTest\test.thrift ,输出的java文件默认输出到当前目录下c:\windows,也可以使用-o参数指定输出路径

 

  2)下载相关依赖包

 

  2.1)libthrift.jar ,下载地址:http://repo1.maven.org/maven2/org/apache/thrift/libthrift/0.9.0/

 

  2.2)slf4j-api.jar

 

  2.3)slf4j-simple.jar

 

  3)编写thrift 接口文件

 

  1. namespace cpp zam.thrift.test  
  2. namespace py thriftTest  
  3. namespace java com.zam.thrift.test  
  4. namespace php thriftTest  
  5.   
  6. service Hello {    
  7.     string helloString(1:string word)    
  8. }  

 

    4)编写接口实现代码

 

  1. package com.zam.server;  
  2. import org.apache.thrift.TException;  
  3. import com.zam.thrift.test.Hello.Iface;  
  4. public class HelloImpl implements Iface{  
  5.   private static int count = 0;  
  6.   @Override  
  7.   public String helloString(String word) throws TException {  
  8.     // TODO Auto-generated method stub  
  9.     count += 1;  
  10.     System.out.println("get " + word + " " +count);     return "hello " + word + " " + count;  
  11.     }  
  12. }  

 

    5)编写server代码

 

  1. package com.zam.server;  
  2. import org.apache.thrift.protocol.TBinaryProtocol;    
  3. import org.apache.thrift.protocol.TBinaryProtocol.Factory;  
  4. import org.apache.thrift.server.TServer;    
  5. import org.apache.thrift.server.TThreadPoolServer;    
  6. import org.apache.thrift.server.TThreadPoolServer.Args;   
  7. import org.apache.thrift.transport.TServerSocket;    
  8. import org.apache.thrift.transport.TTransportException;   
  9. import com.zam.thrift.test.Hello;  
  10. import com.zam.thrift.test.Hello.Processor;  
  11. public class Server {  
  12.   public void startServer() {    
  13.    try {    
  14.     System.out.println("thrift server open port 1234");
  15.     TServerSocket serverTransport = new TServerSocket(1234);  
  16.     Hello.Processor process = new Processor(new HelloImpl()); 
  17.     Factory portFactory = new TBinaryProtocol.Factory(true, true);    
  18.     Args args = new Args(serverTransport);    
  19.     args.processor(process);    
  20.     args.protocolFactory(portFactory);    
  21.     TServer server = new TThreadPoolServer(args);   
  22.     server.serve();    
  23.       } 
  24.         catch (TTransportException e) {    
  25.             e.printStackTrace();    
  26.         }    
  27.     }    
  28.         
  29.     public static void main(String[] args) {    
  30.         System.out.println("thrift server init");  
  31.         Server server = new Server();    
  32.         System.out.println("thrift server start"); 
  33.         server.startServer();    
  34.         System.out.println("thrift server end");  
  35.     }    
  36. }  

 

    6)编写client 代码

 

  1. package com.zam.server;  
  2.   
  3. import org.apache.thrift.TException;    
  4. import org.apache.thrift.protocol.TBinaryProtocol;    
  5. import org.apache.thrift.protocol.TProtocol;    
  6. import org.apache.thrift.transport.TSocket;    
  7. import org.apache.thrift.transport.TTransport;    
  8. import org.apache.thrift.transport.TTransportException;   
  9.   
  10. import com.zam.thrift.test.Hello;  
  11. public class Client {  
  12.     public void startClient() {    
  13.         TTransport transport;    
  14.         try {    
  15.             System.out.println("thrift client connext server at 1234 port ");  
  16.             transport = new TSocket("localhost", 1234);    
  17.             TProtocol protocol = new TBinaryProtocol(transport);    
  18.             Hello.Client client = new Hello.Client(protocol);    
  19.             transport.open();    
  20.             System.out.println(client.helloString("panguso"));    
  21.             transport.close();    
  22.             System.out.println("thrift client close connextion");  
  23.         } catch (TTransportException e) {    
  24.             e.printStackTrace();    
  25.         } catch (TException e) {    
  26.             e.printStackTrace();    
  27.         }    
  28.     }    
  29.     
  30.     public static void main(String[] args) {    
  31.         System.out.println("thrift client init ");  
  32.         Client client = new Client();    
  33.         System.out.println("thrift client start ");  
  34.         client.startClient();    
  35.         System.out.println("thrift client end ");  
  36.     }    
  37. }  

 

 8)运行server和client代码

 

      8.1)启动server端

 

  1. thrift server init  
  2. thrift server start  
  3. thrift server open port 1234  

 

      8.2)启动client端

 

  1. thrift client init   
  2. thrift client start   
  3. thrift client connext server at 1234 port   
  4. hello panguso 1  
  5. thrift client close connextion  
  6. thrift client end 

代码使用了server和client,实际中只是用了clent

 

 

分享到:
评论

相关推荐

    Windows下QT使用Thrift的样例

    在Windows环境下,使用QT结合Thrift进行开发是一项常见的任务,特别是在构建跨平台的服务或应用时。这个样例项目提供了一种方法,使开发者能够在QT环境中有效地利用Thrift框架。让我们详细了解一下这些技术以及如何...

    thrift环境搭建(内附thrift运行环境可执行程序、搭建说明文本)

    在本文中,我们将详细介绍如何搭建Thrift开发环境,并提供可执行程序和搭建说明文本。 1. **下载与安装** 首先,你需要从Thrift官方网站或Apache镜像站点下载适合你操作系统的最新版本的Thrift源代码包。解压后,...

    windows下vs2010编译的thrift,包含lib和cpp源码

    这个资源包对于那些想要在Windows环境下使用Thrift进行跨语言服务开发的开发者来说,是非常有价值的。有了预编译的库文件和源码,你可以快速地开始构建自己的Thrift服务,而无需从零开始编译整个框架。同时,源码的...

    通过thrift使用c++访问hbase

    【描述】: "本文档详述了如何在Linux和Windows环境下配置Thrift环境并使用HBase的C++客户端。" 【标签】: "hadoop hbase thrift boost" 在IT领域,特别是大数据处理中,HBase作为一个分布式NoSQL数据库,常用于...

    Apache Thrift 使用说明

    如果需要指定 Java 环境变量,可以在配置时使用 `JAVAC` 参数。配置完成后,通过 `make` 和 `sudo make install` 来编译和安装 Thrift。 在安装完成后,可以在 `/usr/local/include/thrift` 和 `/usr/local/lib` ...

    win10+VS2010+thrift0.9.3

    1. **安装和配置Thrift**:下载Thrift源码包,然后在本地环境中配置编译环境,如设置路径,安装依赖等。 2. **定义服务接口**:使用Thrift IDL(接口定义语言)编写服务接口描述文件,定义数据结构和服务方法。 3. *...

    win10+VS2010+thrift0.9.3 改进

    6. 接下来,执行`configure --msvc`命令,配置Thrift为使用Visual Studio 2010编译器。 然而,根据描述,编译过程中可能遇到cpp文件未被正确编译的问题,这可能导致服务运行时出现连接错误。为了解决这个问题,我们...

    thrift win7 安装与使用

    ### Thrift在Windows环境下安装与使用详解 #### 一、Thrift简介 Thrift是由Facebook开发的一款跨语言的服务开发框架,旨在支持可扩展的跨平台服务。它通过定义一套简单的数据类型和接口来描述服务,然后自动生成所...

    Win7上VS2015编译和使用Thrift

    4. 对于线程管理,Thrift提供了多种线程工厂,如在Windows环境下,可能需要将PosixThreadFactory替换为PlatformThreadFactory。创建Thrift服务器时,需要实例化处理器、协议工厂、传输工厂以及服务器套接字,并使用...

    Apache Thrift环境配置

    在本文中,我们将深入探讨如何配置Apache Thrift的开发环境,特别是针对CentOS操作系统。 首先,安装Thrift的官方文档提供了详细的指南。然而,对于Windows用户来说,由于需要Cygwin或MinGW,所以通常会选择在Linux...

    官方最新的thrift exe和依赖的jar包

    在实际项目中,不仅需要这个库,可能还需要其他依赖的库,例如处理特定协议或传输层的库,这些通常会在Thrift的Maven或Gradle配置中被指定。 总的来说,获取并使用官方最新的Thrift exe和依赖的jar包,可以帮助...

    ApacheThrift环境配置共2页.pdf.zip

    然而,给定的压缩包文件名"ApacheThrift环境配置共2页.pdf.zip"暗示着里面可能是一个PDF文档,详细介绍了如何配置Apache Thrift的环境,但压缩包中却有一个名为"赚钱项目"的文件,这与Apache Thrift的配置无关。...

    阿里云thrift2连接hbasedemo.zip

    C#是微软开发的一种面向对象的编程语言,广泛应用于Windows平台的开发。在这个项目中,C#作为客户端编程语言,负责与HBase服务器通信。.NET框架为C#提供了丰富的类库和开发工具,使得构建这样的数据访问应用变得...

    thriftTest java案例代码

    在Windows环境下,你需要配置Java环境,并安装Thrift工具。通过命令行运行Thrift编译器,将`.thrift`文件转换为Java源码: ```bash thrift -gen java your_service.thrift ``` 这会在当前目录生成一个gen-java目录...

    在Windows系统下安装Thrift的方法与使用讲解

    接下来,需要配置环境变量,将thrift.exe的地址添加到Path中,例如F:\thrift。最后,在命令行输入thrift -version,如果输出thrift的版本号,即表明安装成功。 二、编写IDL文件 编写IDL文件是使用Thrift的第一步。...

    jaeger-1.56.0-windows-amd64.tar.gz

    5. `jaeger-all-in-one.exe`: 一个组合工具,包含了所有组件,适用于开发和测试环境。 部署流程大致如下: 1. 启动Jaeger Collector:运行`jaeger-collector.exe`,配置相应的端口和存储选项。 2. 启动Jaeger ...

    carbondata的安装使用

    综上所述,CarbonData的安装与使用主要包括了环境准备、编译安装Apache Thrift IDL Compiler、编译CarbonData项目、配置Spark环境以及验证安装等多个步骤。通过这些步骤,用户可以在自己的环境中部署并利用...

    如鹏网《Net微服务》课件第二版.pdf

    本课件会介绍.Net Core在Windows下的安装配置,以及*** Core的基本配置。 Consul是一个服务发现和配置管理系统,它用于发现和配置服务,支持健康检查。在微服务架构中,服务治理是关键一环,Consul能帮助开发者管理...

Global site tag (gtag.js) - Google Analytics