List of usage examples for org.apache.thrift TMultiplexedProcessor TMultiplexedProcessor
TMultiplexedProcessor
From source file:alluxio.master.AlluxioJobMasterProcess.java
License:Apache License
protected void startServingRPCServer() { // set up multiplexed thrift processors TMultiplexedProcessor processor = new TMultiplexedProcessor(); registerServices(processor, mJobMaster.getServices()); // register meta services processor.registerProcessor(Constants.JOB_MASTER_CLIENT_SERVICE_NAME, new JobMasterClientService.Processor<>(new JobMasterClientServiceHandler(mJobMaster))); LOG.info("registered service " + Constants.JOB_MASTER_CLIENT_SERVICE_NAME); // Return a TTransportFactory based on the authentication type TTransportFactory transportFactory;//from w w w . jav a 2s .c om try { String serverName = NetworkAddressUtils.getConnectHost(ServiceType.JOB_MASTER_RPC); transportFactory = mTransportProvider.getServerTransportFactory(serverName); } catch (IOException e) { throw Throwables.propagate(e); } try { if (mTServerSocket != null) { mTServerSocket.close(); } mTServerSocket = ThriftUtils.createThriftServerSocket(mRpcBindAddress); } catch (TTransportException e) { throw new RuntimeException(e); } // create master thrift service with the multiplexed processor. Args args = new Args(mTServerSocket).maxWorkerThreads(mMaxWorkerThreads).minWorkerThreads(mMinWorkerThreads) .processor(processor).transportFactory(transportFactory) .protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(PropertyKey.TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } mMasterServiceServer = new TThreadPoolServer(args); // start thrift rpc server mIsServing = true; mMasterServiceServer.serve(); }
From source file:alluxio.master.AlluxioMaster.java
License:Apache License
protected void startServingRPCServer() { // set up multiplexed thrift processors TMultiplexedProcessor processor = new TMultiplexedProcessor(); registerServices(processor, mBlockMaster.getServices()); registerServices(processor, mFileSystemMaster.getServices()); if (LineageUtils.isLineageEnabled()) { registerServices(processor, mLineageMaster.getServices()); }/*from w w w.jav a 2 s . co m*/ // register additional masters for RPC service for (Master master : mAdditionalMasters) { registerServices(processor, master.getServices()); } // Return a TTransportFactory based on the authentication type TTransportFactory transportFactory; try { transportFactory = mTransportProvider.getServerTransportFactory(); } catch (IOException e) { throw Throwables.propagate(e); } // create master thrift service with the multiplexed processor. Args args = new TThreadPoolServer.Args(mTServerSocket).maxWorkerThreads(mMaxWorkerThreads) .minWorkerThreads(mMinWorkerThreads).processor(processor).transportFactory(transportFactory) .protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(PropertyKey.TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } mMasterServiceServer = new TThreadPoolServer(args); // start thrift rpc server mIsServing = true; mStartTimeMs = System.currentTimeMillis(); mMasterServiceServer.serve(); }
From source file:alluxio.master.AlluxioMasterProcess.java
License:Apache License
/** * Starts the Thrift RPC server. The AlluxioMaster registers the Services of registered * {@link Master}s and meta services to a multiplexed processor, then creates the master thrift * service with the multiplexed processor. *//*from w w w .j a v a2 s.c o m*/ protected void startServingRPCServer() { // set up multiplexed thrift processors TMultiplexedProcessor processor = new TMultiplexedProcessor(); // register master services for (Master master : mRegistry.getServers()) { registerServices(processor, master.getServices()); } // register meta services processor.registerProcessor(Constants.META_MASTER_SERVICE_NAME, new MetaMasterClientService.Processor<>(new MetaMasterClientServiceHandler(this))); // Return a TTransportFactory based on the authentication type TTransportFactory transportFactory; try { transportFactory = mTransportProvider.getServerTransportFactory(); } catch (IOException e) { throw new RuntimeException(e); } try { if (mTServerSocket != null) { mTServerSocket.close(); } mTServerSocket = new TServerSocket(mRpcAddress, Configuration.getInt(PropertyKey.MASTER_CONNECTION_TIMEOUT_MS)); } catch (TTransportException e) { throw new RuntimeException(e); } // create master thrift service with the multiplexed processor. Args args = new TThreadPoolServer.Args(mTServerSocket).maxWorkerThreads(mMaxWorkerThreads) .minWorkerThreads(mMinWorkerThreads).processor(processor).transportFactory(transportFactory) .protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(PropertyKey.TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } mThriftServer = new TThreadPoolServer(args); // start thrift rpc server mIsServing = true; mStartTimeMs = System.currentTimeMillis(); mThriftServer.serve(); }
From source file:alluxio.worker.AlluxioJobWorkerProcess.java
License:Apache License
/** * * Helper method to create a thrift server for handling incoming RPC requests. * * @return a thrift server/* w ww . j av a 2 s.com*/ */ private TThreadPoolServer createThriftServer() { int minWorkerThreads = Configuration.getInt(PropertyKey.WORKER_BLOCK_THREADS_MIN); int maxWorkerThreads = Configuration.getInt(PropertyKey.WORKER_BLOCK_THREADS_MAX); TMultiplexedProcessor processor = new TMultiplexedProcessor(); registerServices(processor, mJobWorker.getServices()); // Return a TTransportFactory based on the authentication type TTransportFactory tTransportFactory; try { String serverName = NetworkAddressUtils.getConnectHost(ServiceType.JOB_WORKER_RPC); tTransportFactory = mTransportProvider.getServerTransportFactory(serverName); } catch (IOException e) { throw Throwables.propagate(e); } TThreadPoolServer.Args args = new TThreadPoolServer.Args(mThriftServerSocket) .minWorkerThreads(minWorkerThreads).maxWorkerThreads(maxWorkerThreads).processor(processor) .transportFactory(tTransportFactory).protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(PropertyKey.TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } return new TThreadPoolServer(args); }
From source file:alluxio.worker.AlluxioWorker.java
License:Apache License
/** * Helper method to create a {@link org.apache.thrift.server.TThreadPoolServer} for handling * incoming RPC requests.//from w w w .j ava 2 s. c om * * @return a thrift server */ private TThreadPoolServer createThriftServer() { int minWorkerThreads = Configuration.getInt(Constants.WORKER_WORKER_BLOCK_THREADS_MIN); int maxWorkerThreads = Configuration.getInt(Constants.WORKER_WORKER_BLOCK_THREADS_MAX); TMultiplexedProcessor processor = new TMultiplexedProcessor(); registerServices(processor, mBlockWorker.getServices()); registerServices(processor, mFileSystemWorker.getServices()); // register additional workers for RPC service for (Worker worker : mAdditionalWorkers) { registerServices(processor, worker.getServices()); } // Return a TTransportFactory based on the authentication type TTransportFactory tTransportFactory; try { tTransportFactory = mTransportProvider.getServerTransportFactory(); } catch (IOException e) { throw Throwables.propagate(e); } TThreadPoolServer.Args args = new TThreadPoolServer.Args(mThriftServerSocket) .minWorkerThreads(minWorkerThreads).maxWorkerThreads(maxWorkerThreads).processor(processor) .transportFactory(tTransportFactory).protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(Constants.IN_TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } return new TThreadPoolServer(args); }
From source file:alluxio.worker.AlluxioWorkerProcess.java
License:Apache License
/** * Helper method to create a {@link org.apache.thrift.server.TThreadPoolServer} for handling * incoming RPC requests.//from w w w . j av a2 s . c om * * @return a thrift server */ private TThreadPoolServer createThriftServer() { int minWorkerThreads = Configuration.getInt(PropertyKey.WORKER_BLOCK_THREADS_MIN); int maxWorkerThreads = Configuration.getInt(PropertyKey.WORKER_BLOCK_THREADS_MAX); TMultiplexedProcessor processor = new TMultiplexedProcessor(); for (Worker worker : mRegistry.getServers()) { registerServices(processor, worker.getServices()); } // Return a TTransportFactory based on the authentication type TTransportFactory tTransportFactory; try { tTransportFactory = mTransportProvider.getServerTransportFactory(); } catch (IOException e) { throw Throwables.propagate(e); } TThreadPoolServer.Args args = new TThreadPoolServer.Args(mThriftServerSocket) .minWorkerThreads(minWorkerThreads).maxWorkerThreads(maxWorkerThreads).processor(processor) .transportFactory(tTransportFactory).protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(PropertyKey.TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } return new TThreadPoolServer(args); }
From source file:alluxio.worker.DefaultAlluxioWorker.java
License:Apache License
/** * Helper method to create a {@link org.apache.thrift.server.TThreadPoolServer} for handling * incoming RPC requests./*from w w w . ja v a 2s. c o m*/ * * @return a thrift server */ private TThreadPoolServer createThriftServer() { int minWorkerThreads = Configuration.getInt(PropertyKey.WORKER_BLOCK_THREADS_MIN); int maxWorkerThreads = Configuration.getInt(PropertyKey.WORKER_BLOCK_THREADS_MAX); TMultiplexedProcessor processor = new TMultiplexedProcessor(); registerServices(processor, mBlockWorker.getServices()); registerServices(processor, mFileSystemWorker.getServices()); // register additional workers for RPC service for (Worker worker : mAdditionalWorkers) { registerServices(processor, worker.getServices()); } // Return a TTransportFactory based on the authentication type TTransportFactory tTransportFactory; try { tTransportFactory = mTransportProvider.getServerTransportFactory(); } catch (IOException e) { throw Throwables.propagate(e); } TThreadPoolServer.Args args = new TThreadPoolServer.Args(mThriftServerSocket) .minWorkerThreads(minWorkerThreads).maxWorkerThreads(maxWorkerThreads).processor(processor) .transportFactory(tTransportFactory).protocolFactory(new TBinaryProtocol.Factory(true, true)); if (Configuration.getBoolean(PropertyKey.TEST_MODE)) { args.stopTimeoutVal = 0; } else { args.stopTimeoutVal = Constants.THRIFT_STOP_TIMEOUT_SECONDS; } return new TThreadPoolServer(args); }
From source file:com.cottsoft.thrift.framework.server.ThriftMultiBinaryServerFactory.java
License:Apache License
/** * ?Processor/*ww w .j ava2s . co m*/ * @return * @throws ThriftException */ public TProcessor getProcessor() throws ThriftException { try { TMultiplexedProcessor processor = new TMultiplexedProcessor(); Set<Class<?>> thriftServiceImplClassList = ScanPackageHander .getPackageAllClasses(baseServiceImplPackage, true); for (Class<?> thriftServiceImplClass : thriftServiceImplClassList) { if (thriftServiceImplClass.isAnnotationPresent(ThriftService.class)) { ThriftService thriftServiceAnnotation = (ThriftService) thriftServiceImplClass .getAnnotation(ThriftService.class); String thriftServiceName = thriftServiceAnnotation.service(); Constructor<?> constructor = Class.forName(thriftServiceName + "$Processor") .getConstructor(Class.forName(thriftServiceName + "$Iface")); Object service = SpringApplicationContext .getBean(getServiceImplBeanName(thriftServiceImplClass)); processor.registerProcessor(thriftServiceName, (TProcessor) constructor.newInstance(service)); if (logger.isDebugEnabled()) { logger.debug(">>> Thrift Service implements class: " + thriftServiceImplClass.getName()); } } } return processor; } catch (NoSuchMethodException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (SecurityException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (ClassNotFoundException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (InstantiationException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (IllegalAccessException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (IllegalArgumentException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (InvocationTargetException e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } catch (Exception e) { if (logger.isInfoEnabled()) { e.printStackTrace(); } throw new ThriftException(e); } }
From source file:com.vmware.photon.controller.chairman.ChairmanServer.java
License:Open Source License
public void serve() throws TTransportException, IOException { InetAddress registrationIpAddress = InetAddress.getByName(registrationAddress); if (registrationIpAddress.isAnyLocalAddress()) { logger.error("Using a wildcard registration address will not work with service registry: {}", registrationAddress);/*from w w w .jav a 2s .co m*/ throw new IllegalArgumentException("Wildcard registration address"); } InetAddress bindIpAddress = InetAddress.getByName(bind); InetSocketAddress bindSocketAddress = new InetSocketAddress(bindIpAddress, port); TServerSocket transport = new TServerSocket(bindSocketAddress); Chairman.Processor<ChairmanService> chairmanProcessor = new Chairman.Processor<>(chairmanService); TMultiplexedProcessor processor = new TMultiplexedProcessor(); processor.registerProcessor("Chairman", chairmanProcessor); // TODO(vspivak): add configurable executor server = new TThreadPoolServer(new TThreadPoolServer.Args(transport).processor(processor) .protocolFactory(protocolFactory).transportFactory(transportFactory)); // Need to re-fetch local port in case it was 0 InetSocketAddress registrationSocketAddress = new InetSocketAddress(registrationIpAddress, transport.getServerSocket().getLocalPort()); serviceNode = serviceNodeFactory.createLeader("chairman", registrationSocketAddress); ServiceNodeUtils.joinService(serviceNode, retryIntervalMsec, manager); logger.info("Starting chairman ({})", buildInfo); logger.info("Listening on: {}", bindSocketAddress); logger.info("Registering address: {}", registrationSocketAddress); server.serve(); }
From source file:com.vmware.photon.controller.deployer.DeployerServer.java
License:Open Source License
public void serve() throws UnknownHostException, TTransportException { InetAddress registrationIpAddress = InetAddress.getByName(registrationAddress); if (registrationIpAddress.isAnyLocalAddress()) { logger.error("Using a wildcard registration address will not work with service registry: {}", registrationAddress);/*from ww w.jav a 2 s.c om*/ throw new IllegalArgumentException("Wildcard registration address"); } InetAddress bindIpAddress = InetAddress.getByName(bind); InetSocketAddress bindSocketAddress = new InetSocketAddress(bindIpAddress, port); TServerSocket transport = new TServerSocket(bindSocketAddress); Deployer.Processor<DeployerService> deployerProcessor = new Deployer.Processor<>(deployerService); TMultiplexedProcessor processor = new TMultiplexedProcessor(); processor.registerProcessor(SERVICE_NAME, deployerProcessor); server = new TThreadPoolServer(new TThreadPoolServer.Args(transport).processor(processor) .protocolFactory(protocolFactory).transportFactory(transportFactory)); // Need to re-fetch local port in case it was 0 InetSocketAddress registrationSocketAddress = new InetSocketAddress(registrationIpAddress, transport.getServerSocket().getLocalPort()); serviceNode = serviceNodeFactory.createSimple("deployer", registrationSocketAddress); server.setServerEventHandler(getThriftEventHandler()); logger.info("Starting deployer ({})", buildInfo); logger.info("Listening on: {}", bindSocketAddress); logger.info("Registering address: {}", registrationSocketAddress); logger.info("HttpClient is: {}", httpClient); server.serve(); }