blob: d855d4e31faefa2203ccf97134a43e8c18beda55 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.servicecomb.transport.rest.client;
import org.apache.servicecomb.transport.common.TransportConfigUtils;
import com.netflix.config.DynamicPropertyFactory;
import io.vertx.core.http.HttpClientOptions;
import io.vertx.core.net.TCPSSLOptions;
public final class TransportClientConfig {
private static Class<? extends RestTransportClient> restTransportClientCls = RestTransportClient.class;
private TransportClientConfig() {
}
public static Class<? extends RestTransportClient> getRestTransportClientCls() {
return restTransportClientCls;
}
public static void setRestTransportClientCls(Class<? extends RestTransportClient> restTransportClientCls) {
TransportClientConfig.restTransportClientCls = restTransportClientCls;
}
public static int getThreadCount() {
return TransportConfigUtils.readVerticleCount(
"servicecomb.rest.client.verticle-count",
"servicecomb.rest.client.thread-count");
}
public static int getHttp2ConnectionMaxPoolSize() {
return DynamicPropertyFactory.getInstance().getIntProperty("servicecomb.rest.client.http2.maxPoolSize",
HttpClientOptions.DEFAULT_HTTP2_MAX_POOL_SIZE)
.get();
}
public static int getHttp2MultiplexingLimit() {
return DynamicPropertyFactory.getInstance().getIntProperty("servicecomb.rest.client.http2.multiplexingLimit",
HttpClientOptions.DEFAULT_HTTP2_MULTIPLEXING_LIMIT)
.get();
}
public static int getHttp2ConnectionIdleTimeoutInSeconds() {
return DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.http2.idleTimeoutInSeconds", TCPSSLOptions.DEFAULT_IDLE_TIMEOUT)
.get();
}
public static boolean getUseAlpn() {
return DynamicPropertyFactory.getInstance()
.getBooleanProperty("servicecomb.rest.client.http2.useAlpnEnabled", true)
.get();
}
public static boolean isHttp2TransportClientEnabled() {
return DynamicPropertyFactory.getInstance()
.getBooleanProperty("servicecomb.rest.client.http2.enabled",
true)
.get();
}
public static int getConnectionMaxPoolSize() {
return DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.connection.maxPoolSize", HttpClientOptions.DEFAULT_MAX_POOL_SIZE)
.get();
}
public static int getConnectionIdleTimeoutInSeconds() {
return DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.connection.idleTimeoutInSeconds", 30)
.get();
}
public static boolean getConnectionKeepAlive() {
return DynamicPropertyFactory.getInstance()
.getBooleanProperty("servicecomb.rest.client.connection.keepAlive", HttpClientOptions.DEFAULT_KEEP_ALIVE)
.get();
}
public static int getConnectionKeepAliveTimeoutInSeconds() {
int result = DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.connection.keepAliveTimeoutInSeconds",
-1)
.get();
if (result >= 0) {
return result;
}
result = getConnectionIdleTimeoutInSeconds();
if (result > 1) {
return result - 1; // a bit shorter than ConnectionIdleTimeoutInSeconds
}
return result;
}
public static boolean getConnectionCompression() {
return DynamicPropertyFactory.getInstance()
.getBooleanProperty("servicecomb.rest.client.connection.compression",
HttpClientOptions.DEFAULT_TRY_USE_COMPRESSION)
.get();
}
public static int getMaxHeaderSize() {
return DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.maxHeaderSize", HttpClientOptions.DEFAULT_MAX_HEADER_SIZE)
.get();
}
public static int getMaxWaitQueueSize() {
return DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.maxWaitQueueSize",
HttpClientOptions.DEFAULT_MAX_WAIT_QUEUE_SIZE)
.get();
}
public static boolean isHttpTransportClientEnabled() {
return DynamicPropertyFactory.getInstance()
.getBooleanProperty("servicecomb.rest.client.enabled",
true)
.get();
}
public static int getConnectionTimeoutInMillis() {
return DynamicPropertyFactory.getInstance()
.getIntProperty("servicecomb.rest.client.connection.timeoutInMillis", 1000)
.get();
}
}