0

我正在尝试优化 undertow 服务器,我想尝试为我的 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 工作者。但是我不清楚如何去做。

4

1 回答 1

0

恐怕您需要按照文档中的描述手动引导 Undertow 的漫长道路。原因是所有 Handler 共享一个 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());
于 2014-11-26T11:24:16.437 回答