/** * Create a channel connector for "http/https" requests */ Connector createChannelConnector(int queueSize, Builder b) { ServerConnector connector; final HttpConfiguration conf = new HttpConfiguration(); conf.setRequestHeaderSize(1024*64); final HttpConnectionFactory http = new HttpConnectionFactory(conf); if (!b.useSSL) { connector = new ServerConnector(webServer, http); } else { SslContextFactory sslContextFactory = new SslContextFactory(); sslContextFactory.setKeyStorePath(b.keyStorePath); Set<String> excludedSSLProtocols = Sets.newHashSet( Splitter.on(",").trimResults().omitEmptyStrings().split( Strings.nullToEmpty(b.conf.getVar(ConfVars.HIVE_SSL_PROTOCOL_BLACKLIST)))); sslContextFactory.addExcludeProtocols(excludedSSLProtocols.toArray( new String[excludedSSLProtocols.size()])); sslContextFactory.setKeyStorePassword(b.keyStorePassword); connector = new ServerConnector(webServer, sslContextFactory, http); } connector.setAcceptQueueSize(queueSize); connector.setReuseAddress(true); connector.setHost(b.host); connector.setPort(b.port); return connector; }
/** Constructs a server to run on the named port on the specified address. */ public HttpServer(ResponderServlet servlet, String bindAddress, int port) throws IOException { this.server = new org.eclipse.jetty.server.Server(); ServerConnector connector = new ServerConnector(this.server); connector.setAcceptQueueSize(128); connector.setIdleTimeout(10000); if (bindAddress != null) { connector.setHost(bindAddress); } connector.setPort(port); server.addConnector(connector); ServletHandler handler = new ServletHandler(); handler.addServletWithMapping(new ServletHolder(servlet), "/*"); ServletContextHandler sch = new ServletContextHandler(); sch.setServletHandler(handler); server.setHandler(sch); }
connector.setInheritChannel(inheritChannel); if (acceptQueueSize != null) { connector.setAcceptQueueSize(acceptQueueSize); } else { connector.setAcceptQueueSize(NetUtil.getTcpBacklog());
public ServerConnector createConnector( Server server, ListenSocketAddress address, JettyThreadCalculator jettyThreadCalculator, ConnectionFactory... httpFactories ) { int acceptors = jettyThreadCalculator.getAcceptors(); int selectors = jettyThreadCalculator.getSelectors(); ServerConnector connector = new ServerConnector( server, null, null, null, acceptors, selectors, httpFactories ); connector.setName( name ); connector.setConnectionFactories( Arrays.asList( httpFactories ) ); // TCP backlog, per socket, 50 is the default, consider adapting if needed connector.setAcceptQueueSize( 50 ); connector.setHost( address.getHostname() ); connector.setPort( address.getPort() ); return connector; } }
connector.setAcceptQueueSize(backlogSize); connector.setIdleTimeout(idleTimeout); server.addListener(connector);
listener.setAcceptQueueSize(128); if (Shell.WINDOWS) {
serverConnector.setAcceptQueueSize(acceptQueueSize);
TimeUnit.MILLISECONDS); connector.setIdleTimeout(maxIdleTime); connector.setAcceptQueueSize(maxWorkerThreads);
private void setJettySettings(JettySettings jettySettings, ServerConnector connector) { if (jettySettings.getAcceptQueueSize().isPresent()) { connector.setAcceptQueueSize(jettySettings.getAcceptQueueSize().get()); } }
private ServerConnector getServerConnector(String serviceName, Server server, Configuration configuration, String host, int port, int connectionIdleTime, int numberOfAcceptors, int numberOfSelectors, int acceptQueueSize, ConnectionFactory... connectionFactories) { ServerConnector connector = new ServerConnector(server, null, null, null, numberOfAcceptors, numberOfSelectors, connectionFactories); connector.setAcceptQueueSize(acceptQueueSize); connector.setPort(port); connector.setHost(host); connector.setIdleTimeout(connectionIdleTime); return connector; }
/** * Create a channel connector for "http/https" requests */ Connector createChannelConnector(int queueSize, Builder b) { ServerConnector connector; final HttpConfiguration conf = new HttpConfiguration(); conf.setRequestHeaderSize(1024*64); final HttpConnectionFactory http = new HttpConnectionFactory(conf); if (!b.useSSL) { connector = new ServerConnector(webServer, http); } else { SslContextFactory sslContextFactory = new SslContextFactory(); sslContextFactory.setKeyStorePath(b.keyStorePath); Set<String> excludedSSLProtocols = Sets.newHashSet( Splitter.on(",").trimResults().omitEmptyStrings().split( Strings.nullToEmpty(b.conf.getVar(ConfVars.HIVE_SSL_PROTOCOL_BLACKLIST)))); sslContextFactory.addExcludeProtocols(excludedSSLProtocols.toArray( new String[excludedSSLProtocols.size()])); sslContextFactory.setKeyStorePassword(b.keyStorePassword); connector = new ServerConnector(webServer, sslContextFactory, http); } connector.setAcceptQueueSize(queueSize); connector.setReuseAddress(true); connector.setHost(b.host); connector.setPort(b.port); return connector; }
private Connector createNIOHTTPConnector(final Server server, final HTTPConfig httpConfig) { // The number of HTTP acceptor is limited to the number of available CPUs by Jetty final int acceptorNb; if (httpConfig.getAcceptorSize() > Runtime.getRuntime().availableProcessors()) { acceptorNb = Runtime.getRuntime().availableProcessors(); this.logger.warning(String.format("HTTP acceptor number limited to the number of available processors (%d)", acceptorNb)); } else { acceptorNb = httpConfig.getAcceptorSize(); } // jetty http connector configuration final ServerConnector nioConnector = new ServerConnector(server, acceptorNb, 0); nioConnector.setPort(httpConfig.getPort()); nioConnector.setAcceptQueueSize(httpConfig.getBacklogSize()); // If we assign the host, we will only be able to contact server // on it. No value or a null one is a wildcard so connection is possible // on network interface // @see java.net.InetSocketAddress final String host = httpConfig.getRestrictedIP(); if (!StringHelper.isNullOrEmpty(host)) { nioConnector.setHost(host); } return nioConnector; }
private Connector createNIOHTTPSConnector(final Server server, final HTTPSConfig httpsConfig) { // The number of HTTPS acceptor is limited to the number of available CPUs by Jetty final int acceptorNb; if (httpsConfig.getAcceptorSize() > Runtime.getRuntime().availableProcessors()) { acceptorNb = Runtime.getRuntime().availableProcessors(); this.logger.warning(String .format("HTTPS acceptor number limited to the number of available processors (%d)", acceptorNb)); } else { acceptorNb = httpsConfig.getAcceptorSize(); } final ServerConnector nioSslConnector = new ServerConnector(server, httpsConfig.getAcceptorSize(), 0, SoapServletServer.createSslConnectionFactory(httpsConfig)); final String host = httpsConfig.getRestrictedIP(); if (!StringHelper.isNullOrEmpty(host)) { nioSslConnector.setHost(host); } nioSslConnector.setPort(httpsConfig.getPort()); nioSslConnector.setAcceptQueueSize(httpsConfig.getBacklogSize()); return nioSslConnector; }
public ServerManager(ServiceConfig config) { this.webServiceExecutor = Executors.newFixedThreadPool(32, new DefaultThreadFactory("pulsar-external-web")); this.server = new Server(new ExecutorThreadPool(webServiceExecutor)); this.externalServicePort = config.getWebServicePort(); List<ServerConnector> connectors = Lists.newArrayList(); ServerConnector connector = new ServerConnector(server, 1, 1); connector.setPort(externalServicePort); connectors.add(connector); if (config.isTlsEnabled()) { SslContextFactory sslCtxFactory = new SslContextFactory(); try { SSLContext sslCtx = SecurityUtility.createSslContext(false, null, config.getTlsCertificateFilePath(), config.getTlsKeyFilePath()); sslCtxFactory.setSslContext(sslCtx); } catch (GeneralSecurityException e) { throw new RestException(e); } sslCtxFactory.setWantClientAuth(false); ServerConnector tlsConnector = new ServerConnector(server, 1, 1, sslCtxFactory); tlsConnector.setPort(config.getWebServicePortTls()); connectors.add(tlsConnector); } // Limit number of concurrent HTTP connections to avoid getting out of file descriptors connectors.stream().forEach(c -> c.setAcceptQueueSize(1024 / connectors.size())); server.setConnectors(connectors.toArray(new ServerConnector[connectors.size()])); }
public ServerConnector createConnector( Server server, ListenSocketAddress address, JettyThreadCalculator jettyThreadCalculator, ConnectionFactory... httpFactories ) { int acceptors = jettyThreadCalculator.getAcceptors(); int selectors = jettyThreadCalculator.getSelectors(); ServerConnector connector = new ServerConnector( server, null, null, null, acceptors, selectors, httpFactories ); connector.setName( name ); connector.setConnectionFactories( Arrays.asList( httpFactories ) ); // TCP backlog, per socket, 50 is the default, consider adapting if needed connector.setAcceptQueueSize( 50 ); connector.setHost( address.getHostname() ); connector.setPort( address.getPort() ); return connector; } }
public ServerManager(ServiceConfig config) { this.webServiceExecutor = Executors.newFixedThreadPool(32, new DefaultThreadFactory("pulsar-external-web")); this.server = new Server(new ExecutorThreadPool(webServiceExecutor)); this.externalServicePort = config.getWebServicePort(); List<ServerConnector> connectors = Lists.newArrayList(); ServerConnector connector = new ServerConnector(server, 1, 1); connector.setPort(externalServicePort); connectors.add(connector); if (config.isTlsEnabled()) { try { SslContextFactory sslCtxFactory = SecurityUtility.createSslContextFactory( config.isTlsAllowInsecureConnection(), config.getTlsTrustCertsFilePath(), config.getTlsCertificateFilePath(), config.getTlsKeyFilePath(), config.getTlsRequireTrustedClientCertOnConnect()); ServerConnector tlsConnector = new ServerConnector(server, 1, 1, sslCtxFactory); tlsConnector.setPort(config.getWebServicePortTls()); connectors.add(tlsConnector); } catch (GeneralSecurityException e) { throw new RestException(e); } } // Limit number of concurrent HTTP connections to avoid getting out of file descriptors connectors.stream().forEach(c -> c.setAcceptQueueSize(1024 / connectors.size())); server.setConnectors(connectors.toArray(new ServerConnector[connectors.size()])); }
protected ServerConnector createConnector() throws Exception { ServerConnector connector = new ServerConnector(server, null, null, null, AppInfo.getInt("http.connector.acceptors", 0), AppInfo.getInt("http.connector.selectors", 5), getConnectionFactorys()); connector.setReuseAddress(AppInfo.getBoolean("http.reuseAddr", false)); int backlog = AppInfo.getInt("http.backlog", 0); if (backlog > 0) { connector.setAcceptQueueSize(backlog); } return connector; }
@Override public void customize(final Server server) { // Tweak the connection pool used by Jetty to handle incoming HTTP connections final QueuedThreadPool threadPool = server.getBean(QueuedThreadPool.class); threadPool.setMaxThreads(Integer.valueOf(maxThreads)); threadPool.setMinThreads(Integer.valueOf(minThreads)); final ServerConnector connector = server.getBean(ServerConnector.class); connector.setIdleTimeout(idleTimeout); connector.setAcceptQueueSize(acceptQueueSize); if(errorHandler != null){ server.addBean(errorHandler); Handler handler = server.getHandler(); if (handler instanceof WebAppContext){ ((WebAppContext)handler).setErrorHandler(errorHandler); } } // threadPool.setIdleTimeout(Integer.valueOf(idleTimeout)); } });
public WebService(PulsarService pulsar) throws PulsarServerException { this.handlers = Lists.newArrayList(); this.pulsar = pulsar; this.webServiceExecutor = Executors.newFixedThreadPool(WebService.NUM_ACCEPTORS, new DefaultThreadFactory("pulsar-web")); this.server = new Server(new ExecutorThreadPool(webServiceExecutor)); List<ServerConnector> connectors = new ArrayList<>(); ServerConnector connector = new PulsarServerConnector(server, 1, 1); connector.setPort(pulsar.getConfiguration().getWebServicePort()); connector.setHost(pulsar.getBindAddress()); connectors.add(connector); if (pulsar.getConfiguration().isTlsEnabled()) { try { SslContextFactory sslCtxFactory = SecurityUtility.createSslContextFactory( pulsar.getConfiguration().isTlsAllowInsecureConnection(), pulsar.getConfiguration().getTlsTrustCertsFilePath(), pulsar.getConfiguration().getTlsCertificateFilePath(), pulsar.getConfiguration().getTlsKeyFilePath(), pulsar.getConfiguration().getTlsRequireTrustedClientCertOnConnect()); ServerConnector tlsConnector = new PulsarServerConnector(server, 1, 1, sslCtxFactory); tlsConnector.setPort(pulsar.getConfiguration().getWebServicePortTls()); tlsConnector.setHost(pulsar.getBindAddress()); connectors.add(tlsConnector); } catch (GeneralSecurityException e) { throw new PulsarServerException(e); } } // Limit number of concurrent HTTP connections to avoid getting out of file descriptors connectors.forEach(c -> c.setAcceptQueueSize(WebService.MAX_CONCURRENT_REQUESTS / connectors.size())); server.setConnectors(connectors.toArray(new ServerConnector[connectors.size()])); }
public ServerConnector createConnector(final Metric metric, final Server server, final ServerSocketChannel ch) { ServerConnector connector; if (connectorConfig.ssl().enabled()) { connector = new JDiscServerConnector(connectorConfig, metric, server, ch, newSslConnectionFactory(), newHttpConnectionFactory()); } else { connector = new JDiscServerConnector(connectorConfig, metric, server, ch, newHttpConnectionFactory()); } connector.setPort(connectorConfig.listenPort()); connector.setName(connectorConfig.name()); connector.setAcceptQueueSize(connectorConfig.acceptQueueSize()); connector.setReuseAddress(connectorConfig.reuseAddress()); connector.setIdleTimeout((long)(connectorConfig.idleTimeout() * 1000.0)); connector.setStopTimeout((long)(connectorConfig.stopTimeout() * 1000.0)); return connector; }