Changing default netty client to use 60 second ping health check timeout and 10MB initial window size.

This commit is contained in:
jushkem 2020-01-27 11:58:31 -08:00
parent 86033089df
commit fafd62c04c

View file

@ -15,15 +15,22 @@
package software.amazon.kinesis.common; 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.http.nio.netty.NettyNioAsyncHttpClient;
import software.amazon.awssdk.services.kinesis.KinesisAsyncClient; import software.amazon.awssdk.services.kinesis.KinesisAsyncClient;
import software.amazon.awssdk.services.kinesis.KinesisAsyncClientBuilder; import software.amazon.awssdk.services.kinesis.KinesisAsyncClientBuilder;
import java.time.Duration;
/** /**
* Utility to setup KinesisAsyncClient to be used with KCL. * Utility to setup KinesisAsyncClient to be used with KCL.
*/ */
public class KinesisClientUtil { 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. * Creates a client from a builder.
* *
@ -35,6 +42,9 @@ public class KinesisClientUtil {
} }
public static KinesisAsyncClientBuilder adjustKinesisClientBuilder(KinesisAsyncClientBuilder builder) { 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));
} }
} }