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 ...");
        }
    }
  • 相关阅读:
    get与post的区别
    shell脚本之变量替换
    Oracle sql性能优化
    HTTP协议报头
    Oracle查看表空间和删除表空间
    shell脚本之cat和wc命令
    java设计模式之单例模式
    Wireshark基本介绍和学习TCP三次握手转
    wrong number of arguments (1 for 2)
    PHP生成.url文件 网站常用的保存到桌面功能
  • 原文地址:https://www.cnblogs.com/horace/p/4422489.html
Copyright © 2011-2022 走看看