.setAcceptorThreadCount(3) .setIoThreadCount(27) .setIdleConnectionTimeout(Duration.valueOf("157ms")) .setConnectionLimit(1111) .setWorkerExecutorKey("my-executor")
/** * 从配置文件中读取参数创建{@link ThriftServerConfig}实例 * @return */ public static ThriftServerConfig makeThriftServerConfig(){ ThriftServerConfig thriftServerConfig = new ThriftServerConfig(); CombinedConfiguration config = GlobalConfig.getConfig(); int intValue ; thriftServerConfig.setPort(config.getInt(SERVER_PORT,DEFAULT_PORT)); if((intValue = config.getInt(SERVER_CONNECTION_LIMIT,0)) >0){ thriftServerConfig.setConnectionLimit(intValue); } if((intValue = config.getInt(SERVER_IDLE_CONNECTION_TIMEMOUT,0))>0){ Duration timeout = new Duration(intValue,TimeUnit.SECONDS); thriftServerConfig.setIdleConnectionTimeout(timeout); } if((intValue = config.getInt(SERVER_WORKER_THREAD_COUNT,0))>0){ thriftServerConfig.setWorkerThreads(intValue); } return thriftServerConfig; } /**
public static void main(String ...args){ serviceConfig.parseCommandLine(args); // 设置slf4j记录日志,否则会有警告 InternalLoggerFactory.setDefaultFactory(new Slf4JLoggerFactory()); ThriftServerConfig config = new ThriftServerConfig() .setPort(serviceConfig.getServicePort()) .setWorkerThreads(serviceConfig.getWorkThreads()) .setConnectionLimit(serviceConfig.getConnectionLimit()) .setIdleConnectionTimeout(new Duration(serviceConfig.getIdleConnectionTimeout(),TimeUnit.SECONDS)); FaceApi faceapi = serviceConfig.getFaceapi(); ThriftServerService service = ThriftServerService.bulider() .withServices(new FaceApiThriftDecorator(faceapi)) .setThriftServerConfig(config) .build(); logger.info("FaceApi instance:{}",faceapi); service.startAsync(); }
@Test public void testDefaults() { ConfigAssertions.assertRecordedDefaults( ConfigAssertions.recordDefaults(ThriftServerConfig.class) .setBindAddress("localhost") .setAcceptBacklog(1024) .setMaxFrameSize(DataSize.valueOf("64MB")) .setPort(0) .setConnectionLimit(0) .setWorkerThreads(200) .setAcceptorThreadCount(1) .setIoThreadCount(2 * Runtime.getRuntime().availableProcessors()) .setIdleConnectionTimeout(Duration.valueOf("60s")) .setTransportName("framed") .setProtocolName("binary") .setWorkerExecutorKey(null) .setTaskExpirationTimeout(Duration.valueOf("5s")) .setQueueTimeout(null) .setMaxQueuedRequests(null) .setMaxQueuedResponsesPerConnection(16) .setTrafficClass(0) ); }