有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Netty事件循环如何映射到JVM线程资源?

我有WebFlux应用程序和这个应用程序的docker图像。 通过具有CPU限制的docker运行:

$ docker run -d --name my_webflux_app --cpus="1" -p 8080:8080 sample_webflux_image

此外,我还有应用程序启动时CPU计数的日志

    @PostConstruct
    public void init() {
        log.info("CPU: {}", Runtime.getRuntime().availableProcessors());
    }

我看到下面的日志:

--- [main] CPU: 1

my_webflux_应用程序-简单的CRUD应用程序。我注意到,在执行一些基本操作时,会在不同的netty Worker上添加日志,如下所示:

--- [reactor-http-epoll-1] ...
--- [reactor-http-epoll-2] ...
--- [reactor-http-epoll-3] ...
--- [reactor-http-epoll-4] ...

对我来说,它看起来很干净,因为Netty对workers有一个默认值-4。那么,网络工人如何映射到现有的CPU资源呢?又有什么关联呢?有多少种类型的网络工作者(epoll和e.t.c)?谢谢


共 (0) 个答案