public static SdkAsyncHttpClient createHttpClient()

in amazon-kinesis-connector-flink/src/main/java/software/amazon/kinesis/connectors/flink/util/AwsV2Util.java [99:142]


	public static SdkAsyncHttpClient createHttpClient(
			final ClientConfiguration config,
			final NettyNioAsyncHttpClient.Builder httpClientBuilder,
			final Properties consumerConfig) {

		int maxConcurrency = Optional
			.ofNullable(consumerConfig.getProperty(EFO_HTTP_CLIENT_MAX_CONCURRENCY))
			.map(Integer::parseInt)
			.orElse(DEFAULT_EFO_HTTP_CLIENT_MAX_CONCURRENCY);

		Duration readTimeout = Optional
				.ofNullable(consumerConfig.getProperty(EFO_HTTP_CLIENT_READ_TIMEOUT_MILLIS))
				.map(Integer::parseInt)
				.map(Duration::ofMillis)
				.orElse(DEFAULT_EFO_HTTP_CLIENT_READ_TIMEOUT);

		Duration acquisitionTimeout = Optional
				.ofNullable(consumerConfig.getProperty(EFO_HTTP_CLIENT_ACQUISITION_TIMEOUT_MILLIS))
				.map(Integer::parseInt)
				.map(Duration::ofMillis)
				.orElse(DEFAULT_EFO_HTTP_CLIENT_ACQUISITION_TIMEOUT);

		httpClientBuilder
			.maxConcurrency(maxConcurrency)
			.connectionTimeout(Duration.ofMillis(config.getConnectionTimeout()))
			.readTimeout(readTimeout)
			.tcpKeepAlive(config.useTcpKeepAlive())
			.writeTimeout(Duration.ofMillis(config.getSocketTimeout()))
			.connectionMaxIdleTime(Duration.ofMillis(config.getConnectionMaxIdleMillis()))
			.useIdleConnectionReaper(config.useReaper())
			.protocol(Protocol.HTTP2)
			.connectionAcquisitionTimeout(acquisitionTimeout)
			.http2Configuration(Http2Configuration
				.builder()
				.healthCheckPingPeriod(HEALTH_CHECK_PING_PERIOD)
				.initialWindowSize(INITIAL_WINDOW_SIZE_BYTES)
				.build());

		if (config.getConnectionTTL() > -1) {
			httpClientBuilder.connectionTimeToLive(Duration.ofMillis(config.getConnectionTTL()));
		}

		return httpClientBuilder.build();
	}