JozoVilcek commented on a change in pull request #11099: [BEAM-9420]
Configurable timeout for blocking kafka API call(s)
URL: https://github.com/apache/beam/pull/11099#discussion_r397119556
##########
File path:
sdks/java/io/kafka/src/main/java/org/apache/beam/sdk/io/kafka/KafkaIO.java
##########
@@ -827,6 +832,19 @@ public void setValueDeserializer(String
valueDeserializer) {
return toBuilder().setOffsetConsumerConfig(offsetConsumerConfig).build();
}
+ /**
+ * Sets a default timeout to use for API calls to Kafka which are possibly
blocking. {@link
+ * KafkaIO.Read} will not wait indefinitely for such calls but cancels
them and fail after given
+ * timeout.
+ *
+ * <p>Higher versions of kafka client library supports such API timeout,
which is passed in
+ * consumer config as `default.api.timeout.ms`. If timeout is not
explicitly set here, then
+ * {@link KafkaIO.Read} will look for `default.api.timeout.ms` parameter
in consumer config.
+ */
+ public Read<K, V> withDefaultKafkaApiTimeout(Duration timeout) {
Review comment:
Yes, I did think of that. I was not sure if to choose that path - less
transparent but easier to maintain. I suppose this can be kept at the level of
"advanced configuration" which needs code familiarity. I will make these
changes and push an update
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services