Thrift的一些总结(Java开发)

Client的开发顺序为:

1、定义Tsocket

2、将Socket包装到Transport(记得Transport要open() )

3、将Transport包装进Protocol

4、将Protocol包装到Client

5、调用Client的函数

6、最后关闭Transport

总之,Client就是“一步一步包进去“的过程:

<span style="white-space:pre">	</span>//定义一个Socket
    	TSocket socket=new TSocket("localhost", 8888);
    	//定义一个transport层,这里使用NIOtransport
    	TTransport transport=new TFramedTransport(socket);
    	//打开transport层!!!!!!!
    	transport.open();
    	//定义一个protocol层,这里使用BinaryProtocol
    	TProtocol protocol=new TBinaryProtocol(transport);
    	//(客户端缺了个Processor层),所以不用定义
    	//定义client
    	Echo.Client client=new Echo.Client(protocol);
    	//调用client,使用client的函数
    	System.out.println(client.getEcho("Hello World!"));
    	//关闭client
    	transport.close();

Server的开发顺序为:

1、实现service的Iface,生成Handler

2、将Handler包装到Processor

3、定义一个ServerSocket

4、将ServerSocket包装到Server.Args对象中

5、使用“搭积木”的方式不断搭建args(Server的参数),包括Processor,Protocol,Transport等

6、最后将Args包装进Server

7、启动Server

总之,Server采用“填参数”的方法搭建起来:

<span style="white-space:pre">	</span>//定义一个Processor层,包装Handler
    	Echo.Processor processer=new Processor(new EchoHandler());
    	//定义一个ServerSocket
        TNonblockingServerSocket serverSocket=new TNonblockingServerSocket(8888);
        //定义一个服务器参数对象,包装Socket
// 		单线程nio模式
//		TNonblockingServer.Args serverArgs=new TNonblockingServer.Args(serverSocket);
// 		one selector,n worker模式
//   	THsHaServer.Args serverArgs=new THsHaServer.Args(serverSocket);
// 		n selector ,n worker模式
        TThreadedSelectorServer.Args serverArgs=new TThreadedSelectorServer.Args(serverSocket);
        //参数对象使用连续搭建模式,搭建出processor层,protocol层,和Transport层
        serverArgs.processor(processer)
        			.protocolFactory(new TBinaryProtocol.Factory())
        			.transportFactory(new TFramedTransport.Factory())
        			.workerThreads(8)//Hsha和ThreadSelector特有的参数
        			.selectorThreads(2);//ThreadSelector特有的参数
        //创建Server,传进参数对象
//   	TServer server=new TNonblockingServer(serverArgs);
//   	THsHaServer server =new THsHaServer(serverArgs);
        TThreadedSelectorServer server=new TThreadedSelectorServer(serverArgs);
        //启动Server
        System.out.println("server start...");
        server.serve();


 注意:使用NIO模式时都要使用TFramedTransport,BIO不多加阐述 



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值