Windows下Thrift安装与简单使用

安装

  1. 下载

    下载地址:http://archive.apache.org/dist/thrift/0.10.0/。将thrift-0.10.0.exe放到一个文件下,如F:\thrift下,将其重命名为thrift.exe。如果不重命名,需要使用thrift-0.10.0调用thrift命令。

  2. 配置环境变量

    向Path中添加变量值,值为thrift.exe的地址,如F:\thrift。

  3. 测试

    命令行输入thrift -version,如果输出thrift的版本即表明安装成功。

使用

  1. 编写IDL接口

    HelloService.thrift

    1
    2
    3
    4
    5
    namespace java com.thrift.demo.service 

    service HelloService{
    string sayHello(1:string username)
    }
  2. 编译

    编译之后会生成类HelloService。

    1
    thrift -gen java HelloService.thrift
  3. 编写实现类

    HelloServiceImpl.java

    1
    2
    3
    4
    5
    6
    7
    8
    9

    public class HelloServiceImpl implements HelloService.Iface {

    @Override
    public String sayHello(String username) throws TException {
    return "Hello Thrift Service : " + username;
    }

    }
  4. 编写服务端代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    public class HelloServer {
    public static final int SERVER_PORT = 8090;

    public void startServer() {
    try {
    System.out.println("HelloService TSimpleServer start ....");

    TProcessor tprocessor = new HelloService.Processor<HelloService.Iface>(new HelloServiceImpl());

    // 简单的单线程服务模型,一般用于测试
    TServerSocket serverTransport = new TServerSocket(SERVER_PORT);
    TServer.Args tArgs = new TServer.Args(serverTransport);
    tArgs.processor(tprocessor);
    tArgs.protocolFactory(new TBinaryProtocol.Factory());
    TServer server = new TSimpleServer(tArgs);
    server.serve();

    } catch (Exception e) {
    System.out.println("Server start error!!!");
    e.printStackTrace();
    }
    }

    public static void main(String[] args) {
    HelloServer server = new HelloServer();
    server.startServer();
    }
    }
  5. 编写客户端代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

    public class HelloClient {
    public static final String SERVER_IP = "localhost";
    public static final int SERVER_PORT = 8090;
    public static final int TIMEOUT = 30000;

    public void startClient(String userName) {
    TTransport transport = null;
    try {
    transport = new TSocket(SERVER_IP, SERVER_PORT, TIMEOUT);
    // 协议要和服务端一致
    TProtocol protocol = new TBinaryProtocol(transport);
    HelloService.Client client = new HelloService.Client(protocol);
    transport.open();
    String result = client.sayHello(userName);
    System.out.println("Thrify client result =: " + result);
    } catch (TTransportException e) {
    e.printStackTrace();
    } catch (TException e) {
    e.printStackTrace();
    } finally {
    if (null != transport) {
    transport.close();
    }
    }
    }

    public static void main(String[] args) {
    HelloClient client = new HelloClient();
    client.startClient("Michael");

    }
    }
  6. 运行

    先运行服务端,再运行客户端。

-------------本文结束感谢您的阅读-------------

本文标题:Windows下Thrift安装与简单使用

文章作者:huihui

发布时间:2018年11月29日 - 00:11

最后更新:2019年02月14日 - 19:02

原始链接:http://101.200.47.120:8011/2018/11/29/Windows下Thrift安装与简单使用/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。