Here I am trying to reject the request at the berth server level before moving on to the servlet. Since, according to the configuration below, the thread pool has 6 minimum and 10 maximum parallel execution threads, and 10 requests can be queued in the thread pool, where 55 requests can be queued at the connector level. therefore, the total number is 85, which means that 200 requests are sent at the same time, 115 requests must be rejected. But even if I send 1000 requests at a time jmeter. The Jetty server serves all requests. The following is a snippet of code.
Server server = new Server(); QueuedThreadPool threadPool = new QueuedThreadPool(); LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(15); ExecutorThreadPool pool = new ExecutorThreadPool(6, 10, 30000, TimeUnit.MILLISECONDS, queue); server.setThreadPool(pool); threadPool.setMaxThreads(AssuranceConfiguration.annetAssurancesrvConsumerThread); server.setThreadPool(threadPool); if (AssuranceConfiguration.annetAssurancesrvSslRequired) { if (logger.isInfoEnabled()) { logger.info("Going to use HTTPS, Initialising SSL context...."); } SslContextFactory sslContextFactory = new SslContextFactory(); sslContextFactory.setKeyStore(JettyServer.class.getResource(KEYSTOREFILE).getFile()); sslContextFactory.setKeyStorePassword(AssuranceConfiguration.annetAssurancesrvKeystoreidentifier); sslContextFactory.setKeyManagerPassword(AssuranceConfiguration.annetAssurancesrvKeystoremanagerPassword); SslSelectChannelConnector sslConnector = new SslSelectChannelConnector(sslContextFactory); sslConnector.setPort(AssuranceConfiguration.annetAssurancesrvPort); server.setConnectors(new Connector[] { sslConnector }); } else { if (logger.isInfoEnabled()) { logger.info("Going to use HTTP, Initialising simple context...."); } SelectChannelConnector simpleConnector = new SelectChannelConnector(); simpleConnector.setPort(AssuranceConfiguration.annetAssurancesrvPort); simpleConnector.setMaxIdleTime(30000); simpleConnector.setRequestHeaderSize(8192); server.setConnectors(new Connector[] { simpleConnector }); simpleConnector.setAcceptQueueSize(55); }
source share