package qnd; 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; import com.github.btnguyen2k.idserver.thrift.TIdService; import com.github.ddth.thriftpool.ITProtocolFactory; import com.github.ddth.thriftpool.PoolConfig; import com.github.ddth.thriftpool.ThriftClientPool; public class BaseQndThriftClient { protected static ITProtocolFactory protocolFactory(final String host, final int port) { ITProtocolFactory protocolFactory = new ITProtocolFactory() { @Override public TProtocol create() { TTransport transport = new TFramedTransport(new TSocket(host, port)); TProtocol protocol = new TCompactProtocol(transport); return protocol; } }; return protocolFactory; } protected static ThriftClientPool<TIdService.Client, TIdService.Iface> clientPool( final String host, final int port) { final ThriftClientPool<TIdService.Client, TIdService.Iface> pool = new ThriftClientPool<TIdService.Client, TIdService.Iface>(); pool.setClientClass(TIdService.Client.class).setClientInterface(TIdService.Iface.class); pool.setTProtocolFactory(protocolFactory(host, port)); pool.setPoolConfig(new PoolConfig().setMaxActive(8192).setMaxWaitTime(10000)); pool.init(); return pool; } }