zoukankan      html  css  js  c++  java
  • 创建Thrift Server和Thrift Client

    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 ...");
        }
    }
  • 相关阅读:
    javascript实现根据时间段显示问候语的方法
    视觉会议收藏一
    cv的期刊和会议
    CVPR2016 Paper list
    CVPR 2017 Paper list
    关注的牛人
    cvpr2016论文
    linux命令技巧:scp多文件远程拷贝
    linux命令技巧--df -lh:查看磁盘占用情况
    spark--01编译安装spark1.3.1
  • 原文地址:https://www.cnblogs.com/horace/p/4422489.html
Copyright © 2011-2022 走看看