默认情况下,Spring Web Flux 使用单线程事件循环 netty。如何配置 spring boot 以便为每个核心创建一个线程。
谢谢,
洛克什
请您参考如下方法:
如 Spring Boot reference documentation 中所述,您可以使用 NettyServerCustomizer
自定义 Reactor Netty Web 服务器.
这是 Spring Boot 2.1 的示例:
@Component
public class MyNettyWebServerCustomizer
implements WebServerFactoryCustomizer<NettyReactiveWebServerFactory> {
@Override
public void customize(NettyReactiveWebServerFactory factory) {
factory.addServerCustomizers(new EventLoopNettyCustomizer());
}
}
class EventLoopNettyCustomizer implements NettyServerCustomizer {
@Override
public HttpServer apply(HttpServer httpServer) {
EventLoopGroup eventLoopGroup = //...;
return httpServer.tcpConfiguration(tcpServer ->
tcpServer.bootstrap(serverBootstrap
-> serverBootstrap.group(eventLoopGroup)));
}
}