@@ -137,7 +137,9 @@ public class SfsSingletonServer extends Server implements Shareable {
137
137
private Set <HostAndPort > parsedPublishAddresses = new LinkedHashSet <>();
138
138
private Set <HostAndPort > clusterHosts = new LinkedHashSet <>();
139
139
private List <HttpServer > httpServers = new ArrayList <>();
140
- private int verticleMaxHeaderSize ;
140
+ private int httpServerMaxHeaderSize ;
141
+ private int httpServerIdleConnectionTimeout ;
142
+ private int remoteNodeIdleConnectionTimeout ;
141
143
private boolean started = false ;
142
144
private Throwable startException = null ;
143
145
private int remoteNodeMaxPoolSize ;
@@ -217,12 +219,18 @@ public void start(final Future<Void> startedResult) {
217
219
218
220
nodes = new Nodes ();
219
221
220
- verticleMaxHeaderSize = new Integer (ConfigHelper .getFieldOrEnv (config , "http.maxheadersize" , "8192" ));
221
- Preconditions .checkArgument (verticleMaxHeaderSize > 0 , "http.maxheadersize must be greater than 0" );
222
+ httpServerMaxHeaderSize = new Integer (ConfigHelper .getFieldOrEnv (config , "http.maxheadersize" , "8192" ));
223
+ Preconditions .checkArgument (httpServerMaxHeaderSize > 0 , "http.maxheadersize must be greater than 0" );
224
+
225
+ httpServerIdleConnectionTimeout = new Integer (ConfigHelper .getFieldOrEnv (config , "http.idleconnectiontimeout" , String .valueOf (TimeUnit .MINUTES .toMillis (20 ))));
226
+ Preconditions .checkArgument (httpServerIdleConnectionTimeout > 0 , "http.idleconnectiontimeout must be greater than 0" );
222
227
223
228
int nodeStatsRefreshInterval = new Integer (ConfigHelper .getFieldOrEnv (config , "node_stats_refresh_interval" , String .valueOf (TimeUnit .SECONDS .toMillis (1 ))));
224
229
Preconditions .checkArgument (nodeStatsRefreshInterval > 0 , "node_stats_refresh_interval must be greater than 0" );
225
230
231
+ remoteNodeIdleConnectionTimeout = new Integer (ConfigHelper .getFieldOrEnv (config , "remotenode.idleconnectiontimeout" , "30" ));
232
+ Preconditions .checkArgument (remoteNodeIdleConnectionTimeout > 0 , "remotenode.idleconnectiontimeout must be greater than 0" );
233
+
226
234
remoteNodeMaxPoolSize = new Integer (ConfigHelper .getFieldOrEnv (config , "remotenode.maxpoolsize" , "25" ));
227
235
Preconditions .checkArgument (remoteNodeMaxPoolSize > 0 , "remotenode.maxpoolsize must be greater than 0" );
228
236
@@ -582,7 +590,7 @@ public Observable<List<HttpServer>> initHttpListeners(VertxContext<Server> vertx
582
590
if (!listeningHostAddresses .contains (hostAndPort )) {
583
591
if (createHttpServer ) {
584
592
LOGGER .info ("Creating http listener on " + hostAndPort );
585
- return createHttpServer (vertxContext , hostAndPort , verticleMaxHeaderSize , createRouter (vertxContext ))
593
+ return createHttpServer (vertxContext , hostAndPort , createRouter (vertxContext ))
586
594
.onErrorResumeNext (throwable -> {
587
595
LOGGER .warn ("Failed to start listener " + hostAndPort .toString (), throwable );
588
596
return Defer .just (null );
@@ -605,15 +613,15 @@ public Observable<List<HttpServer>> initHttpListeners(VertxContext<Server> vertx
605
613
.map (_continue -> httpServers );
606
614
}
607
615
608
- protected Observable <HttpServer > createHttpServer (VertxContext <Server > vertxContext , HostAndPort hostAndPort , int verticleMaxHeaderSize , Router router ) {
616
+ protected Observable <HttpServer > createHttpServer (VertxContext <Server > vertxContext , HostAndPort hostAndPort , Router router ) {
609
617
ObservableFuture <HttpServer > handler = RxHelper .observableFuture ();
610
618
HttpServerOptions httpServerOptions = new HttpServerOptions ()
611
- .setMaxHeaderSize (verticleMaxHeaderSize )
619
+ .setMaxHeaderSize (httpServerMaxHeaderSize )
612
620
.setCompressionSupported (false )
613
621
.setUsePooledBuffers (true )
614
622
.setAcceptBacklog (10000 )
615
623
.setReuseAddress (true )
616
- .setIdleTimeout (30 )
624
+ .setIdleTimeout (httpServerIdleConnectionTimeout )
617
625
.setHandle100ContinueAutomatically (true );
618
626
vertxContext .vertx ().createHttpServer (httpServerOptions )
619
627
.requestHandler (router ::accept )
@@ -630,7 +638,7 @@ protected HttpClient createHttpClient(Vertx v, boolean https) {
630
638
.setPipelining (false )
631
639
.setMaxWaitQueueSize (200 )
632
640
.setReuseAddress (true )
633
- .setIdleTimeout (30 )
641
+ .setIdleTimeout (remoteNodeIdleConnectionTimeout )
634
642
.setSsl (https );
635
643
636
644
return v .createHttpClient (httpClientOptions );
0 commit comments