当前位置: 首页 > 知识库问答 >
问题:

如何设置事件循环池的大小在Spring WebFlow/WebClient?

沈飞跃
2023-03-14

在多Reactor框架中,如Vert。X我们可以设置事件循环线程的数量,例如:

final VertxOptions vertxOptions = new VertxOptions();
vertxOptions.setEventLoopPoolSize(16);
final Vertx myVertx = Vertx.vertx(vertxOptions);

如何在Spring Boot 2 WebFlux/WebClient中实现等效功能?

共有2个答案

锺霍英
2023-03-14

事件循环由Spring项目reactor实现,所有请求都由事件循环处理,在内部它使用反应式Netty来处理web请求。在行李箱2中。XX使用ReactorNetty 0.8或更高版本,等效系统属性命名为Reactor。内蒂。ioWorkerCount。记录为“默认工作线程计数”

您可以通过添加以下内容来定义事件循环池大小

VM参数-Dreactor.netty.ioWorkerCount=2

示例:java-jar您的应用程序。jar-Dreactor。内蒂。ioWorkerCount=2

花玄裳
2023-03-14

您有两种选择:

>

  • 使用应用事件循环资源配置的自定义程序覆盖ReactiveWebServerFactorybean:

    @Bean
    public ReactiveWebServerFactory reactiveWebServerFactory() {
        NettyReactiveWebServerFactory factory = new NettyReactiveWebServerFactory();
        factory.addServerCustomizers(builder -> builder.loopResources(LoopResources.create("my-http", 16, true)));
    
        return factory;
    }
    

    或使用Dreactor。ipc。内蒂。workerCount=16环境变量。默认情况下,它的值设置为“数学”。最大值(可用处理器(),4)。示例:<代码>java-jar您的应用程序。jar-Dreactor。ipc。内蒂。workerCount=16

  •  类似资料:
    • 问题内容: 如果我没记错的话,我记得异步I / O的“事件循环”模型(Node.js,Nginx)不适合用于提供大文件。 是这种情况,如果是,周围是否有方法?我正在考虑在Node中编写一个实时文件浏览器/文件服务器,但是文件的大小可能在100MB到3GB之间。我认为事件循环将一直阻塞直到文件被完全提供为止? 问题答案: 不,它不会被阻止。node.js将分块读取文件,然后将那些块发送到客户端。在大

    • 我们已经实现了对Netty事件循环队列的监控,以便了解我们的一些Netty模块的问题。监视器使用方法,该方法适用于大多数模块,但对于每秒处理几千个HTTP请求的模块,它似乎被挂起,或者非常慢。我现在意识到文档严格指定这可能是一个问题,我觉得很差劲…所以我正在寻找另一种方法来实现这个监视器。 您可以在此处看到旧代码:https://github.com/outbrain/ob1k/blob/6364

    • 我使用的是SpringBoot2.0。3释放。我想增加HikariCP的最大池大小,默认情况下为10。 我试着在带有 spring.datasource.hikari.maximum-池-大小=200 但是它不起作用,因为在日志中它仍然显示最大池大小为10。 我想改变的原因是,我不知怎么地达到了登台的极限,我不知道是什么原因造成的。

    • 我正在使用JHipster开发基于Spring Boot和AngularJS的应用程序。我的问题是如何设置上传文件的最大大小? 如果我试图上传到大文件,我会在控制台中获得以下信息: 和状态为500的服务器响应。 怎么设置?

    • #前端##前端面试必备宝典# 我所理解的事件循环是图里的这样的。然后查阅相关资料关于微任务和宏任务的区别。 微任务:直接在js引擎中执行,没有参与事件循环的异步任务 宏任务:参与了事件循环的异步任务 那么问题来了,微任务是怎么进入事件队列的,走不走浏览器线程?走的话那不就是参与了事件循环了?不走的话通过js线程直接放到队列里?

    • 事件是应用程序与自身各个功能模块以及与操作系统进行通讯的手段,也是实现事件驱动编程模型的基础,应用程序如果要响应这些事件,通常是创建一个事件队列来集中存放它们,从事件队列取出事件并调用对应处理器就是一次事件响应,而往复执行这个操作的过程就是事件循环。 驱动接口 LCUI 对事件循环的操作有处理事件、绑定事件和解绑事件,驱动模块的职责就是基于操作系统接口向 LCUI 提供实现了这些操作的接口。首先我