merlimat closed pull request #1547: Make client keepAliveInterval configurable in client side URL: https://github.com/apache/incubator-pulsar/pull/1547
This is a PR merged from a forked repository. As GitHub hides the original diff on merge, it is displayed below for the sake of provenance: As this is a foreign pull request (from a fork), the diff is supplied below (as it won't show otherwise due to GitHub magic): diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java b/pulsar-client/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java index b832e59c9b..418953d5b7 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/api/ClientBuilder.java @@ -262,4 +262,12 @@ ClientBuilder authentication(String authPluginClassName, Map<String, String> aut * @param maxNumberOfRejectedRequestPerConnection */ ClientBuilder maxNumberOfRejectedRequestPerConnection(int maxNumberOfRejectedRequestPerConnection); + + /** + * Set keep alive interval in seconds for each client-broker-connection. <i>(default: 30)</i>. + * + * @param keepAliveIntervalSeconds + * @param unit time unit for {@code statsInterval} + */ + ClientBuilder keepAliveInterval(int keepAliveIntervalSeconds, TimeUnit unit); } diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java index 3effc7f3bf..deb06251fb 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientBuilderImpl.java @@ -155,6 +155,12 @@ public ClientBuilder maxNumberOfRejectedRequestPerConnection(int maxNumberOfReje return this; } + @Override + public ClientBuilder keepAliveInterval(int keepAliveIntervalSeconds, TimeUnit unit) { + conf.setKeepAliveIntervalSeconds((int)unit.toSeconds(keepAliveIntervalSeconds)); + return this; + } + public ClientConfigurationData getClientConfigurationData() { return conf; } diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientCnx.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientCnx.java index d89d8fbd5a..39aac44799 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientCnx.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/ClientCnx.java @@ -107,7 +107,7 @@ } public ClientCnx(ClientConfigurationData conf, EventLoopGroup eventLoopGroup) { - super(30, TimeUnit.SECONDS); + super(conf.getKeepAliveIntervalSeconds(), TimeUnit.SECONDS); this.pendingLookupRequestSemaphore = new Semaphore(conf.getConcurrentLookupRequest(), true); this.authentication = conf.getAuthentication(); this.eventLoopGroup = eventLoopGroup; diff --git a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java index 4fe7569a3b..859bb1b763 100644 --- a/pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java +++ b/pulsar-client/src/main/java/org/apache/pulsar/client/impl/conf/ClientConfigurationData.java @@ -53,6 +53,7 @@ private boolean tlsHostnameVerificationEnable = false; private int concurrentLookupRequest = 50000; private int maxNumberOfRejectedRequestPerConnection = 50; + private int keepAliveIntervalSeconds = 30; public ClientConfigurationData clone() { try { ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org With regards, Apache Git Services