thrift rpc框架入门

原创 2016年05月30日 14:38:29

thrift 入门

  1. 下载thrift:wget http://ftp.kddilabs.jp/infosystems/apache/thrift/0.9.3/thrift-0.9.3.tar.gz
  2. 解压:tar -zxvf thrift-0.9.3.tar.gz
  3. 安装: ./configure && make && make install
  4. 编写thrift文件:
    (dto.thrift)
namespace java com.terry.thrift.dto
struct Person {
    1: string username,
    2: string password
}

(service.thrift)

namespace java  com.terry.thrift.service
include "dto.thrift"
service PersonService {
    dto.Person get(1:string username)
}

4.1 编译thrift文件:

thrift -gen java dto.thrift 
thrift -gen java service.thrift 

4.2 把生成的文件导入工程

  1. 服务实现:
public class PersonServiceImpl implements PersonService.Iface {

    @Override
    public Person get(String username) throws TException {
        System.out.println("client param: " + username);
        Person p = new Person();
        p.setPassword("password");
        p.setUsername("username");
        return p;
    }
}
  1. 服务启动测试:
public class ThriftServer {

    private static PersonService.Iface service;
    private static PersonService.Processor process;

    public static void main(String[] args) {
        service = new PersonServiceImpl();
        process = new PersonService.Processor(service);
        Runnable simple = new Runnable() {
            public void run() {
                simple(process);
            }
        };
        new Thread(simple).start();
    }
    public static void simple(PersonService.Processor processor) {
        try {
            TServerTransport serverTransport = new TServerSocket(9090);
            TServer server = new TSimpleServer(new Args(serverTransport).processor(processor));
            System.out.println("Starting the simple server...");
            server.serve();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 客户端测试:
public class ThriftClient {

    public static void main(String[] args) throws Exception{
        TTransport transport = new TSocket("localhost", 9090);
        transport.open();
        TProtocol p = new TBinaryProtocol(transport);
        PersonService.Client client = new PersonService.Client(p);
        Person person = client.get("name");
        System.out.println(person);

    }
}

Thrift框架使用教程

Thrift框架使用教程 注:这个框架的强大之处在于它只需要写一个简单的thrift脚本就能生成不同语言的SourceCode,这些SourceCode包含了几乎所有Client端以及Server端...
  • tianmuxia
  • tianmuxia
  • 2012年09月04日 14:28
  • 13907

RPC框架-Thrift的使用

Apache ThriftThrift 是一种接口描述语言,通过二进制通信协议为多种编程语言定义和创建服务。Thrift是一种可扩展的跨语言服务的RPC框架,由Facebook开发并且开源。应用安装M...
  • rlanffy
  • rlanffy
  • 2016年07月10日 19:57
  • 1177

Thrift可扩展高性能的通信服务框架

Thrift可扩展高性能的通信服务框架 The Apache Thrift software framework, for scalable cross-language services deve...
  • blade2001
  • blade2001
  • 2015年07月07日 15:34
  • 3288

Thrift 入门教程

简介Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang,...
  • u011304970
  • u011304970
  • 2017年06月17日 22:49
  • 2748

RPC框架Thrift (C++和GO语言例子)

RPC框架Thrift (C++和GO语言例子)
  • shanshanpt
  • shanshanpt
  • 2016年11月09日 00:03
  • 1191

跨语言RPC框架Thrift详解

一、 概念Apache的Thrift软件框架,是用来进行可伸缩的、跨语言的服务开发,它通过一个代码生成引擎来构建高效、无缝的服务,这些服务能够实现跨语言调度,目前支持的语言有: C++, Java, ...
  • zw19910924
  • zw19910924
  • 2017年10月08日 23:32
  • 291

Thrift 入门教程

简介Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erlang,...
  • u011304970
  • u011304970
  • 2017年06月17日 22:49
  • 2748

Thrift优缺点及应用

Thrift优缺点及应用 Apache Thrift: 应用     Facebook的开源的日志收集系统(scribe: https://github.com/facebook/scr...
  • yueguanyun
  • yueguanyun
  • 2016年10月19日 22:32
  • 2177

thrift系列 - harpc 基于thrift的轻量级rpc框架

注意:此文为转载文章,原文地址为:https://github.com/baifendian/harpc harpc是什么 HARPC(High Availability ...
  • hrn1216
  • hrn1216
  • 2016年05月12日 13:52
  • 23603

Thrift RPC详解

转自http://zheming.wang/thrift-rpcxiang-jie.html Zheming HomeCategoriesTagsArchivesAboutPublic...
  • kesonyk
  • kesonyk
  • 2016年03月18日 16:13
  • 6398
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:thrift rpc框架入门
举报原因:
原因补充:

(最多只允许输入30个字)