protected TServer getTThreadedSelectorServer(TNonblockingServerTransport serverTransport, TProtocolFactory protocolFactory, TProcessor processor, TTransportFactory transportFactory, InetSocketAddress inetSocketAddress) { LOG.info("starting HBase ThreadedSelector Thrift server on " + inetSocketAddress.toString()); TThreadedSelectorServer.Args serverArgs = new HThreadedSelectorServerArgs(serverTransport, conf); int queueSize = conf.getInt(TBoundedThreadPoolServer.MAX_QUEUED_REQUESTS_CONF_KEY, TBoundedThreadPoolServer.DEFAULT_MAX_QUEUED_REQUESTS); CallQueue callQueue = new CallQueue(new LinkedBlockingQueue<>(queueSize), metrics); int workerThreads = conf.getInt(TBoundedThreadPoolServer.MAX_WORKER_THREADS_CONF_KEY, serverArgs.getWorkerThreads()); int selectorThreads = conf.getInt(THRIFT_SELECTOR_NUM, serverArgs.getSelectorThreads()); serverArgs.selectorThreads(selectorThreads); ExecutorService executorService = createExecutor( callQueue, workerThreads, workerThreads); serverArgs.executorService(executorService).processor(processor) .transportFactory(transportFactory).protocolFactory(protocolFactory); return new TThreadedSelectorServer(serverArgs); }
public static void startRPCServer2(leafServer leafserver , String ip , int port) throws Exception { //关联处理器leafrpc的实现 TProcessor processor = new leafrpc.Processor<leafrpc.Iface>(new RPCService(leafserver)); //传输通道,非阻塞模式 InetSocketAddress address = new InetSocketAddress(InetAddress.getByName(ip),port); TNonblockingServerSocket serverTransport = new TNonblockingServerSocket(address,10000); //多线程半同步半异步 TThreadedSelectorServer.Args tArgs = new TThreadedSelectorServer.Args(serverTransport); tArgs.processor(processor); //二进制协议 tArgs.protocolFactory(new TBinaryProtocol.Factory()); //多线程半同步半异步的服务模型 TServer server = new TThreadedSelectorServer(tArgs); LOG.info("leaf RPCServer(type:TThreadedSelectorServer) start at ip:port : "+ ip +":" + port ); server.serve(); } //TNonblockingServerSocket
private static TServer getTThreadedSelectorServer(TProtocolFactory protocolFactory, TProcessor processor, TTransportFactory transportFactory, int workerThreads, int selectorThreads, int maxCallQueueSize, InetSocketAddress inetSocketAddress, ThriftMetrics metrics) throws TTransportException { TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(inetSocketAddress); log.info("starting HBase ThreadedSelector Thrift server on " + inetSocketAddress.toString()); TThreadedSelectorServer.Args serverArgs = new TThreadedSelectorServer.Args(serverTransport); if (workerThreads > 0) { serverArgs.workerThreads(workerThreads); } if (selectorThreads > 0) { serverArgs.selectorThreads(selectorThreads); } ExecutorService executorService = createExecutor( workerThreads, maxCallQueueSize, metrics); serverArgs.executorService(executorService); serverArgs.processor(processor); serverArgs.transportFactory(transportFactory); serverArgs.protocolFactory(protocolFactory); return new TThreadedSelectorServer(serverArgs); }
private static TServer getTThreadedSelectorServer(TProtocolFactory protocolFactory, TProcessor processor, TTransportFactory transportFactory, int workerThreads, int selectorThreads, int maxCallQueueSize, InetSocketAddress inetSocketAddress, ThriftMetrics metrics) throws TTransportException { TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(inetSocketAddress); log.info("starting HBase ThreadedSelector Thrift server on " + inetSocketAddress.toString()); TThreadedSelectorServer.Args serverArgs = new TThreadedSelectorServer.Args(serverTransport); if (workerThreads > 0) { serverArgs.workerThreads(workerThreads); } if (selectorThreads > 0) { serverArgs.selectorThreads(selectorThreads); } ExecutorService executorService = createExecutor( workerThreads, maxCallQueueSize, metrics); serverArgs.executorService(executorService); serverArgs.processor(processor); serverArgs.transportFactory(transportFactory); serverArgs.protocolFactory(protocolFactory); return new TThreadedSelectorServer(serverArgs); }
ServerThread(TProcessor processor, int port) throws Exception { TNonblockingServerSocket serverTransport = new TNonblockingServerSocket(port); TThreadedSelectorServer.Args tArgs = new TThreadedSelectorServer.Args(serverTransport); TProcessorFactory processorFactory = new TProcessorFactory(processor); tArgs.processorFactory(processorFactory); tArgs.transportFactory(new TFramedTransport.Factory()); tArgs.protocolFactory( new TBinaryProtocol.Factory(true, true)); server = new TThreadedSelectorServer(tArgs); }
ServerThread(TProcessor processor, int port) throws Exception { TNonblockingServerSocket serverTransport = new TNonblockingServerSocket(port); TThreadedSelectorServer.Args tArgs = new TThreadedSelectorServer.Args(serverTransport); TProcessorFactory processorFactory = new TProcessorFactory(processor); tArgs.processorFactory(processorFactory); tArgs.transportFactory(new TFramedTransport.Factory()); tArgs.protocolFactory( new TBinaryProtocol.Factory(true, true)); server = new TThreadedSelectorServer(tArgs); }
.transportFactory(transportFactory) .protocolFactory(protocolFactory); tserver = new TThreadedSelectorServer(serverArgs);
public void startThreadedSelectorServer() throws TTransportException { TNonblockingServerTransport serverTransport = new TNonblockingServerSocket(this.port); TTransportFactory transportFactory = new TFramedTransport.Factory(); TProtocolFactory proFactory = new TBinaryProtocol.Factory(); final Send.Processor<Send.Iface> processor = new Send.Processor<Send.Iface>(this.handler); TThreadedSelectorServer.Args args = new TThreadedSelectorServer.Args(serverTransport); args.protocolFactory(proFactory); args.transportFactory(transportFactory); args.processor(processor); TServer server = new TThreadedSelectorServer(args); server.serve(); }
public static void main(String[] args) throws TException{ //处理器 TProcessor processor = new HelloService.Processor<HelloService.Iface>(new HelloServiceImpl()); // 传输通道 - 非阻塞方式 TNonblockingServerSocket serverTransport = new TNonblockingServerSocket(SERVER_PORT); // 多线程半同步半异步 TThreadedSelectorServer.Args tArgs = new TThreadedSelectorServer.Args(serverTransport); tArgs.processor(processor); // 使用非阻塞式IO,服务端和客户端需要指定TFramedTransport数据传输的方式 tArgs.transportFactory(new TFramedTransport.Factory()); //使用高密度二进制协议 tArgs.protocolFactory(new TCompactProtocol.Factory()); // 多线程半同步半异步的服务模型 TThreadedSelectorServer server = new TThreadedSelectorServer(tArgs); System.out.println("HelloTThreadedSelectorServer start...."); server.serve(); } }
options.protocolFactory(new TCompactProtocol.Factory()); options.maxReadBufferBytes = MAX_BUFFER_SIZE; dataServer = new TThreadedSelectorServer(options); LOG.info("Launching Thrift server."); dataServer.serve();
.transportFactory(transportFactory) .protocolFactory(protocolFactory); tserver = new TThreadedSelectorServer(serverArgs);
.transportFactory(transportFactory) .protocolFactory(protocolFactory); tserver = new TThreadedSelectorServer(serverArgs);
public static void main(String[] args) throws TException{ // 传输通道 - 非阻塞方式 TNonblockingServerSocket serverTransport = new TNonblockingServerSocket(SERVER_PORT); // 多线程半同步半异步 TThreadedSelectorServer.Args tArgs = new TThreadedSelectorServer.Args(serverTransport); // 使用非阻塞式IO,服务端和客户端需要指定TFramedTransport数据传输的方式 tArgs.transportFactory(new TFramedTransport.Factory()); //使用高密度二进制协议 tArgs.protocolFactory(new TCompactProtocol.Factory()); //设置processor工厂 TMultiplexedProcessor tprocessor = new TMultiplexedProcessor(); registerServices(tprocessor); tArgs.processorFactory(new TProcessorFactory(tprocessor)); //线程关键参数设置:最好是从配置文件中读取,方便线上修改控制 //参数默认值:selectorThreads = 2;workerThreads = 5;stopTimeoutVal = 60; tArgs.selectorThreads(selectorThreadNum);//处理请求selector线程数 tArgs.workerThreads(workerThreadNum);//工作线程数 //采用:TThreadedSelectorServer,高并发,多线程,非阻塞,必须配合TFramedTransport,适用于长连接和短链接场景,推荐总是使用 TServer server = new TThreadedSelectorServer(tArgs); System.out.println("HelloTThreadedSelectorServer start...."); server.serve(); }
public static void main(String[] args) { try { // 设置服务端口为 7777 TNonblockingServerSocket nonBlockingServerSocket = new TNonblockingServerSocket(PORT); // 关联处理器与 HelloService 服务的实现 TMultiplexedProcessor tMultiplexedProcessor = new TMultiplexedProcessor(); tMultiplexedProcessor.registerProcessor("HelloService",new HelloService.Processor(new HelloServiceImpl())); TThreadedSelectorServer.Args threadedSelectorServerArgs = new TThreadedSelectorServer.Args(nonBlockingServerSocket); TProcessorFactory processorFactory = new TProcessorFactory(tMultiplexedProcessor); threadedSelectorServerArgs.processorFactory(processorFactory); // 协议 threadedSelectorServerArgs.protocolFactory(new TCompactProtocol.Factory()); // transport threadedSelectorServerArgs.transportFactory(new TFramedTransport.Factory()); TThreadedSelectorServer server = new TThreadedSelectorServer(threadedSelectorServerArgs); log.info("server start listen on {0}...",PORT); server.serve(); } catch (TTransportException e) { e.printStackTrace(); } } }
args.selectorThreads(1); args.workerThreads(1); server = new TThreadedSelectorServer(args); server.setServerEventHandler(new TServerEventHandler() { @Override
.selectorThreads(numSelectorThreads); args.maxReadBufferBytes = maxReadBufferSize; TThreadedSelectorServer server = new TThreadedSelectorServer(args); return server;