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 ..."); } }
时间: 2024-11-08 17:03:21