Thrift 非阻塞式IO服务模型-TNonblockingServer
来源:互联网 发布:漫画上色软件 编辑:程序博客网 时间:2024/06/11 23:45
使用非阻塞式IO,服务端和客户端需要指定 TFramedTransport 数据传输的方式。
服务端HelloTNonblockingServer.java:
package cn.slimsmart.thrift.demo.helloworld;import org.apache.thrift.TException;import org.apache.thrift.TProcessor;import org.apache.thrift.protocol.TCompactProtocol;import org.apache.thrift.server.TNonblockingServer;import org.apache.thrift.server.TServer;import org.apache.thrift.transport.TFramedTransport;import org.apache.thrift.transport.TNonblockingServerSocket;/** * 注册服务端 * 使用非阻塞式IO,服务端和客户端需要指定 TFramedTransport 数据传输的方式。 TNonblockingServer */public class HelloTNonblockingServer {// 注册端口public static final int SERVER_PORT = 8080;public static void main(String[] args) throws TException {//处理器TProcessor tprocessor = new HelloWorld.Processor<HelloWorld.Iface>(new HelloWorldImpl());// 传输通道 - 非阻塞方式 TNonblockingServerSocket serverTransport = new TNonblockingServerSocket(SERVER_PORT);//异步IO,需要使用TFramedTransport,它将分块缓存读取。 TNonblockingServer.Args tArgs = new TNonblockingServer.Args(serverTransport);tArgs.processor(tprocessor);tArgs.transportFactory(new TFramedTransport.Factory());//使用高密度二进制协议 tArgs.protocolFactory(new TCompactProtocol.Factory());// 使用非阻塞式IO,服务端和客户端需要指定TFramedTransport数据传输的方式TServer server = new TNonblockingServer(tArgs);System.out.println("HelloTNonblockingServer start....");server.serve(); // 启动服务}}客户端HelloNonblockingClient.java:
package cn.slimsmart.thrift.demo.helloworld;import org.apache.thrift.TException;import org.apache.thrift.protocol.TCompactProtocol;import org.apache.thrift.protocol.TProtocol;import org.apache.thrift.transport.TFramedTransport;import org.apache.thrift.transport.TSocket;import org.apache.thrift.transport.TTransport;/** * 客户端调用HelloTNonblockingServer,HelloTHsHaServer * 非阻塞 */public class HelloNonblockingClient {public static final String SERVER_IP = "127.0.0.1";public static final int SERVER_PORT = 8080;public static final int TIMEOUT = 30000;public static void main(String[] args) throws TException {//设置传输通道,对于非阻塞服务,需要使用TFramedTransport,它将数据分块发送 TTransport transport = new TFramedTransport(new TSocket(SERVER_IP, SERVER_PORT, TIMEOUT));// 协议要和服务端一致//HelloTNonblockingServer////使用高密度二进制协议 TProtocol protocol = new TCompactProtocol(transport);//HelloTHsHaServer////使用二进制协议 //TProtocol protocol = new TBinaryProtocol(transport);HelloWorld.Client client = new HelloWorld.Client(protocol);transport.open();String result = client.sayHello("jack");System.out.println("result : " + result);//关闭资源transport.close();}}
0 0
- Thrift 非阻塞式IO服务模型-TNonblockingServer
- Thrift学习笔记(2)--Thrift 非阻塞式IO服务模型
- Thrift 多线程阻塞式IO服务模型-TThreadPoolServer
- Thrift学习笔记(3)--Thrift 多线程阻塞式IO服务模型
- 聊聊Thrift(四) thrift 服务篇-TNonblockingServer
- thirft使用非阻塞模式TNonblockingServer
- 非阻塞IO服务器模型
- IO模型:同步、异步、阻塞、非阻塞
- linux下五种IO模型小结(阻塞IO、非阻塞IO、IO复用、信号驱动式IO、异步IO)
- 非阻塞式IO
- IO模型之阻塞、非阻塞、IO多路复用、异步
- python基础-io模型、阻塞、非阻塞、io多路复用
- thrift(1):TNonblockingServer分析
- 网络IO模型:同步IO和异步IO,阻塞IO和非阻塞IO
- 5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO
- 网络模型:阻塞IO,非阻塞IO,IO复用,信号驱动IO,异步IO
- socket阻塞/非阻塞,同步/异步,io模型
- IO模型:同步与异步,阻塞与非阻塞
- Tomcat 配置
- 坚持自己的选择,走适合自己的道路
- 【C#】变量的定义,值、引用以及枚举类型详解说明
- s4
- 【bzoj3223】文艺平衡树【Splay】【呵呵】
- Thrift 非阻塞式IO服务模型-TNonblockingServer
- uva_10878
- hdoj 2191 多重背包入门题
- 黑马程序员__内部类和异常
- 我喜欢网站
- c#实现直角排列的99乘法表
- Thrift 半同步半异步的服务模型-THsHaServer(异步调用客户端)
- oracle学习笔记
- 天气预报调用插件