Add a configuration property for reactor-netty server's idleTimeout.
Property name: server.netty.idle-timeout
Property type: Duration
Default value: not configured (infinite)
Reactor-netty added an idleTimeout configuration property in https://github.com/reactor/reactor-netty/pull/1377.
Currently, this can be set programmatically like this:
@Bean
WebServerFactoryCustomizer<NettyReactiveWebServerFactory> nettyServerCustomizer() {
return factory -> factory.addServerCustomizers(httpServer -> httpServer.idleTimeout(Duration.ofSeconds(20)));
}
Netty server's default idle timeout is infinite. Spring-boot can keep the same default.
We have to set this value in all of our apps due to network "stuff" killing idle connections non-gracefully (sigh). Therefore occasionally clients don't notice terminated connections in their connection pool, and attempt to reuse it, and receive response timeouts. We've noticed that when we add the server-side idleTimeout, the clients can detect the closed connections, and don't try to reuse them. Clients can also reduce their idleTimeout to fix this problem, but the server-side fix helps in general.
Having a configuration property would be really nice so we can avoid the programmatic config!
Comment From: mbhave
Closing in favor of PR #27371.