2014-11-04 31 views
0

我想優化下游服務器,我想嘗試爲我的HttpListener設置I/O線程(WORKER_IO_THREADS和WORKER_TASK_CORE_THREADS)。你能幫我完成必要的步驟嗎?爲上游服務器設置工作線程

Undertow server = Undertow.builder().addHttpListener(80, "") 
       .setHandler(new HttpHandler() { 
       public void handleRequest(final HttpServerExchange exchange) 
         throws Exception { 
        String string_exchange = exchange.getQueryString(); 
        str = <some work on string_exchange> 
        exchange.getResponseSender().send(str); 
       } 
      }).build(); 
server.start(); 

我確實讀過與監聽器關聯的XNIO worker需要配置。但我不清楚如何去做這件事。

回答

0

恐怕您需要按照documentation中所述手動引導Undertow。原因是所有處理程序都從一個XnioWorker共享NIO池。

XnioWorker worker = xnio.createWorker(OptionMap.builder() 
    .set(Options.WORKER_IO_THREADS, ioThreads) 
    .set(Options.WORKER_TASK_CORE_THREADS, workerThreads) 
    .set(Options.WORKER_TASK_MAX_THREADS, workerThreads) 
    .set(Options.TCP_NODELAY, true) 
    .getMap());