码迷,mamicode.com
首页 > 其他好文 > 详细

创建Thrift Server和Thrift Client

时间:2015-04-13 18:23:20      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

1、创建Server

package cn.horace.thrift.server;

import cn.horace.thrift.idl.IUserService;
import cn.horace.thrift.rpc.IUserServiceImpl;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocolFactory;
import org.apache.thrift.server.TServer;
import org.apache.thrift.server.TThreadPoolServer;
import org.apache.thrift.transport.*;

import java.io.IOException;

/**
 * Created by Horace on 15-4-10下午9:00.
 */
public class SimpleServer
{
    public static void main(String[] args) throws TTransportException, IOException
    {
        // 创建处理器
        IUserService.Processor<IUserServiceImpl> processor = new IUserService.Processor<IUserServiceImpl>(new IUserServiceImpl());

        // 创建传输对象
        TServerTransport serverTransport = new TServerSocket(9090);

        // 创建传输工厂,非阻塞
        TTransportFactory transportFactory = new TFramedTransport.Factory();

        // 创建协议工厂
        TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();

        // 设置服务器参数
        TThreadPoolServer.Args serverArgs = new TThreadPoolServer.Args(serverTransport);

        // 设置处理器
        serverArgs.processor(processor);

        // 设置使用的协议
        serverArgs.protocolFactory(protocolFactory);

        // 设置使用的传输对象
        serverArgs.transportFactory(transportFactory);

        // 创建服务器
        TServer server = new TThreadPoolServer(serverArgs);

        System.out.println("Starting the simple server...");
        server.serve();
    }
}

 

2、创建客户端

 

package cn.horace.thrift.client;

import cn.horace.thrift.idl.IUserService;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;

/**
 * Created by Horace on 15-4-10下午9:00.
 */
public class SimpleClient
{
    public static void main(String[] args) throws TException, InterruptedException
    {
        // 创建传输对象
        TSocket baseTransport = new TSocket("127.0.0.1", 9090);

        // 创建传输对象,非阻塞式
        TTransport transport = new TFramedTransport.Factory().getTransport(baseTransport);

        // 打开连接通道
        transport.open();

        // 创建协议对象
        TProtocol protocol = new TBinaryProtocol(transport);

        // 创建客户端对象
        IUserService.Client client = new IUserService.Client(protocol);

        client.findAll();

        transport.close();

        System.out.println("findAll ...");
    }
}

 

创建Thrift Server和Thrift Client

标签:

原文地址:http://www.cnblogs.com/horace/p/4422489.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!