Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ public void init(Vertx vertx) throws Exception {

private HttpClientOptions createHttpClientOptions() {
HttpClientOptions httpClientOptions = new HttpClientOptions();

httpClientOptions.setMaxPoolSize(TransportClientConfig.getConnectionMaxPoolSize());
httpClientOptions.setIdleTimeout(TransportClientConfig.getConnectionIdleTimeoutInSeconds());
httpClientOptions.setKeepAlive(TransportClientConfig.getConnectionKeepAlive());
if (this.sslEnabled) {
SSLOptionFactory factory =
SSLOptionFactory.createSSLOptionFactory(SSL_KEY,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,35 @@

package io.servicecomb.transport.rest.client;

import com.netflix.config.DynamicIntProperty;
import com.netflix.config.DynamicPropertyFactory;

public final class TransportClientConfig {
private TransportClientConfig() {
}

public static int getThreadCount() {
DynamicIntProperty address =
DynamicPropertyFactory.getInstance().getIntProperty("cse.rest.client.thread-count", 1);
return address.get();
return DynamicPropertyFactory.getInstance().
getIntProperty("cse.rest.client.thread-count", 1).get();
}

public static int getConnectionPoolPerThread() {
DynamicIntProperty address =
DynamicPropertyFactory.getInstance().getIntProperty("cse.rest.client.connection-pool-per-thread", 1);
return address.get();
return DynamicPropertyFactory.getInstance().
getIntProperty("cse.rest.client.connection-pool-per-thread", 1).get();
}

public static int getConnectionMaxPoolSize() {
return DynamicPropertyFactory.getInstance().
getIntProperty("cse.rest.client.connection.maxPoolSize", 5).get();
}

public static int getConnectionIdleTimeoutInSeconds() {
return DynamicPropertyFactory.getInstance().
getIntProperty("cse.rest.client.connection.idleTimeoutInSeconds", 30)
.get();
}

public static boolean getConnectionKeepAlive() {
return DynamicPropertyFactory.getInstance().
getBooleanProperty("cse.rest.client.connection.keepAlive", true).get();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ <VERTICLE extends AbstractVerticle> boolean blockDeploy(Vertx vertx,
RestTransportClient client = new RestTransportClient(true);
client.init(vertx);
Assert.assertEquals(options.isSsl(), true);
Assert.assertEquals(options.getIdleTimeout(), 30);
Assert.assertEquals(options.isKeepAlive(), true);
Assert.assertEquals(options.getMaxPoolSize(), 5);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ private HttpServerOptions createDefaultHttpServerOptions() {
serverOptions.setSendBufferSize(SEND_BUFFER_SIZE);
serverOptions.setReceiveBufferSize(RECEIVE_BUFFER_SIZE);
serverOptions.setUsePooledBuffers(true);
serverOptions.setIdleTimeout(TransportConfig.getConnectionIdleTimeoutInSeconds());

if (endpointObject.isSslEnabled()) {
SSLOptionFactory factory =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,8 @@ public static int getThreadCount() {
DynamicPropertyFactory.getInstance().getIntProperty("cse.rest.server.thread-count", 1);
return address.get();
}

public static int getConnectionIdleTimeoutInSeconds() {
return DynamicPropertyFactory.getInstance().getIntProperty("cse.rest.server.connection.idleTimeoutInSeconds", 60).get();
}
}