From fafd62c04c32a69484500a993fdfb9b1e9a72822 Mon Sep 17 00:00:00 2001 From: jushkem <20001595+jushkem@users.noreply.github.com> Date: Mon, 27 Jan 2020 11:58:31 -0800 Subject: [PATCH] Changing default netty client to use 60 second ping health check timeout and 10MB initial window size. --- .../amazon/kinesis/common/KinesisClientUtil.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/common/KinesisClientUtil.java b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/common/KinesisClientUtil.java index bec0a545..ef5194e4 100644 --- a/amazon-kinesis-client/src/main/java/software/amazon/kinesis/common/KinesisClientUtil.java +++ b/amazon-kinesis-client/src/main/java/software/amazon/kinesis/common/KinesisClientUtil.java @@ -15,15 +15,22 @@ package software.amazon.kinesis.common; +import software.amazon.awssdk.http.Protocol; +import software.amazon.awssdk.http.nio.netty.Http2Configuration; import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient; import software.amazon.awssdk.services.kinesis.KinesisAsyncClient; import software.amazon.awssdk.services.kinesis.KinesisAsyncClientBuilder; +import java.time.Duration; + /** * Utility to setup KinesisAsyncClient to be used with KCL. */ public class KinesisClientUtil { + private static int INITIAL_WINDOW_SIZE_BYTES = 10 * 1024 * 1024; + private static long HEALTH_CHECK_PING_PERIOD_MILLIS = 60 * 1000; + /** * Creates a client from a builder. * @@ -35,6 +42,9 @@ public class KinesisClientUtil { } public static KinesisAsyncClientBuilder adjustKinesisClientBuilder(KinesisAsyncClientBuilder builder) { - return builder.httpClientBuilder(NettyNioAsyncHttpClient.builder().maxConcurrency(Integer.MAX_VALUE)); + return builder.httpClientBuilder(NettyNioAsyncHttpClient.builder().maxConcurrency(Integer.MAX_VALUE) + .http2Configuration(Http2Configuration.builder().initialWindowSize(INITIAL_WINDOW_SIZE_BYTES) + .healthCheckPingPeriod(Duration.ofMillis(HEALTH_CHECK_PING_PERIOD_MILLIS)).build()) + .protocol(Protocol.HTTP2)); } }