Example usage for org.apache.thrift TMultiplexedProcessor TMultiplexedProcessor

List of usage examples for org.apache.thrift TMultiplexedProcessor TMultiplexedProcessor

Introduction

In this page you can find the example usage for org.apache.thrift TMultiplexedProcessor TMultiplexedProcessor.

Prototype

TMultiplexedProcessor

Source Link

Usage

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();
}