Настройка рабочих потоков для сервера undertow

Я пытаюсь оптимизировать сервер undertow и хочу попробовать настроить потоки ввода-вывода (WORKER_IO_THREADS и WORKER_TASK_CORE_THREADS) для моего HttpListener. Не могли бы вы помочь мне с необходимыми шагами?

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, связанный с прослушивателем, необходимо настроить. Однако мне не ясно, как это сделать.


person pm2014    schedule 04.11.2014    source источник


Ответы (1)


Я боюсь, что вам придется пройти долгий путь загрузки Undertow вручную, как описано в документация. Причина этого в том, что все обработчики совместно используют пулы NIO от одного XnioWorker.

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());
person atok    schedule 26.11.2014