最近在研究使用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 接口文件
- namespace cpp zam.thrift.test
- namespace py thriftTest
- namespace java com.zam.thrift.test
- namespace php thriftTest
- service Hello {
- string helloString(1:string word)
- }
4)编写接口实现代码
- package com.zam.server;
- import org.apache.thrift.TException;
- import com.zam.thrift.test.Hello.Iface;
- public class HelloImpl implements Iface{
- private static int count = 0;
- @Override
- public String helloString(String word) throws TException {
- // TODO Auto-generated method stub
- count += 1;
- System.out.println("get " + word + " " +count); return "hello " + word + " " + count;
- }
- }
5)编写server代码
- package com.zam.server;
- import org.apache.thrift.protocol.TBinaryProtocol;
- import org.apache.thrift.protocol.TBinaryProtocol.Factory;
- import org.apache.thrift.server.TServer;
- import org.apache.thrift.server.TThreadPoolServer;
- import org.apache.thrift.server.TThreadPoolServer.Args;
- import org.apache.thrift.transport.TServerSocket;
- import org.apache.thrift.transport.TTransportException;
- import com.zam.thrift.test.Hello;
- import com.zam.thrift.test.Hello.Processor;
- public class Server {
- public void startServer() {
- try {
- System.out.println("thrift server open port 1234");
- TServerSocket serverTransport = new TServerSocket(1234);
- Hello.Processor process = new Processor(new HelloImpl());
- Factory portFactory = new TBinaryProtocol.Factory(true, true);
- Args args = new Args(serverTransport);
- args.processor(process);
- args.protocolFactory(portFactory);
- TServer server = new TThreadPoolServer(args);
- server.serve();
- }
- catch (TTransportException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- System.out.println("thrift server init");
- Server server = new Server();
- System.out.println("thrift server start");
- server.startServer();
- System.out.println("thrift server end");
- }
- }
6)编写client 代码
- package com.zam.server;
- 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 com.zam.thrift.test.Hello;
- public class Client {
- public void startClient() {
- TTransport transport;
- try {
- System.out.println("thrift client connext server at 1234 port ");
- transport = new TSocket("localhost", 1234);
- TProtocol protocol = new TBinaryProtocol(transport);
- Hello.Client client = new Hello.Client(protocol);
- transport.open();
- System.out.println(client.helloString("panguso"));
- transport.close();
- System.out.println("thrift client close connextion");
- } catch (TTransportException e) {
- e.printStackTrace();
- } catch (TException e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- System.out.println("thrift client init ");
- Client client = new Client();
- System.out.println("thrift client start ");
- client.startClient();
- System.out.println("thrift client end ");
- }
- }
8)运行server和client代码
8.1)启动server端
- thrift server init
- thrift server start
- thrift server open port 1234
8.2)启动client端
- thrift client init
- thrift client start
- thrift client connext server at 1234 port
- hello panguso 1
- thrift client close connextion
- thrift client end
代码使用了server和client,实际中只是用了clent
相关推荐
在本文中,我们将详细介绍如何搭建Thrift开发环境,并提供可执行程序和搭建说明文本。 1. **下载与安装** 首先,你需要从Thrift官方网站或Apache镜像站点下载适合你操作系统的最新版本的Thrift源代码包。解压后,...
在Windows环境下,使用QT结合Thrift进行开发是一项常见的任务,特别是在构建跨平台的服务或应用时。这个样例项目提供了一种方法,使开发者能够在QT环境中有效地利用Thrift框架。让我们详细了解一下这些技术以及如何...
这个资源包对于那些想要在Windows环境下使用Thrift进行跨语言服务开发的开发者来说,是非常有价值的。有了预编译的库文件和源码,你可以快速地开始构建自己的Thrift服务,而无需从零开始编译整个框架。同时,源码的...
【描述】: "本文档详述了如何在Linux和Windows环境下配置Thrift环境并使用HBase的C++客户端。" 【标签】: "hadoop hbase thrift boost" 在IT领域,特别是大数据处理中,HBase作为一个分布式NoSQL数据库,常用于...
如果需要指定 Java 环境变量,可以在配置时使用 `JAVAC` 参数。配置完成后,通过 `make` 和 `sudo make install` 来编译和安装 Thrift。 在安装完成后,可以在 `/usr/local/include/thrift` 和 `/usr/local/lib` ...
1. **安装和配置Thrift**:下载Thrift源码包,然后在本地环境中配置编译环境,如设置路径,安装依赖等。 2. **定义服务接口**:使用Thrift IDL(接口定义语言)编写服务接口描述文件,定义数据结构和服务方法。 3. *...
6. 接下来,执行`configure --msvc`命令,配置Thrift为使用Visual Studio 2010编译器。 然而,根据描述,编译过程中可能遇到cpp文件未被正确编译的问题,这可能导致服务运行时出现连接错误。为了解决这个问题,我们...
### Thrift在Windows环境下安装与使用详解 #### 一、Thrift简介 Thrift是由Facebook开发的一款跨语言的服务开发框架,旨在支持可扩展的跨平台服务。它通过定义一套简单的数据类型和接口来描述服务,然后自动生成所...
4. 对于线程管理,Thrift提供了多种线程工厂,如在Windows环境下,可能需要将PosixThreadFactory替换为PlatformThreadFactory。创建Thrift服务器时,需要实例化处理器、协议工厂、传输工厂以及服务器套接字,并使用...
在本文中,我们将深入探讨如何配置Apache Thrift的开发环境,特别是针对CentOS操作系统。 首先,安装Thrift的官方文档提供了详细的指南。然而,对于Windows用户来说,由于需要Cygwin或MinGW,所以通常会选择在Linux...
在实际项目中,不仅需要这个库,可能还需要其他依赖的库,例如处理特定协议或传输层的库,这些通常会在Thrift的Maven或Gradle配置中被指定。 总的来说,获取并使用官方最新的Thrift exe和依赖的jar包,可以帮助...
然而,给定的压缩包文件名"ApacheThrift环境配置共2页.pdf.zip"暗示着里面可能是一个PDF文档,详细介绍了如何配置Apache Thrift的环境,但压缩包中却有一个名为"赚钱项目"的文件,这与Apache Thrift的配置无关。...
C#是微软开发的一种面向对象的编程语言,广泛应用于Windows平台的开发。在这个项目中,C#作为客户端编程语言,负责与HBase服务器通信。.NET框架为C#提供了丰富的类库和开发工具,使得构建这样的数据访问应用变得...
在Windows环境下,你需要配置Java环境,并安装Thrift工具。通过命令行运行Thrift编译器,将`.thrift`文件转换为Java源码: ```bash thrift -gen java your_service.thrift ``` 这会在当前目录生成一个gen-java目录...
接下来,需要配置环境变量,将thrift.exe的地址添加到Path中,例如F:\thrift。最后,在命令行输入thrift -version,如果输出thrift的版本号,即表明安装成功。 二、编写IDL文件 编写IDL文件是使用Thrift的第一步。...
5. `jaeger-all-in-one.exe`: 一个组合工具,包含了所有组件,适用于开发和测试环境。 部署流程大致如下: 1. 启动Jaeger Collector:运行`jaeger-collector.exe`,配置相应的端口和存储选项。 2. 启动Jaeger ...
综上所述,CarbonData的安装与使用主要包括了环境准备、编译安装Apache Thrift IDL Compiler、编译CarbonData项目、配置Spark环境以及验证安装等多个步骤。通过这些步骤,用户可以在自己的环境中部署并利用...
本课件会介绍.Net Core在Windows下的安装配置,以及*** Core的基本配置。 Consul是一个服务发现和配置管理系统,它用于发现和配置服务,支持健康检查。在微服务架构中,服务治理是关键一环,Consul能帮助开发者管理...