Edoardo Comar created KAFKA-4531:
------------------------------------
Summary: Rationalise client configuration validation
Key: KAFKA-4531
URL: https://issues.apache.org/jira/browse/KAFKA-4531
Project: Kafka
Issue Type: Improvement
Components: clients
Reporter: Edoardo Comar
The broker-side configuration has a {{validateValues()}} method that could be
introduced also in the client-side {{ProducerConfig}} and {{ConsumerConfig}}
classes.
The rationale is to centralise constraints between values, like e.g. this one
currently in the {{KafkaConsumer}} constructor:
{code}
if (this.requestTimeoutMs <= sessionTimeOutMs ||
this.requestTimeoutMs <= fetchMaxWaitMs)
throw new
ConfigException(ConsumerConfig.REQUEST_TIMEOUT_MS_CONFIG + " should be greater
than " + ConsumerConfig.SESSION_TIMEOUT_MS_CONFIG + " and " +
ConsumerConfig.FETCH_MAX_WAIT_MS_CONFIG);
{code}
or custom validation of the provided values, e.g. this one in the
{{KafkaProducer}} :
{code}
private static int parseAcks(String acksString) {
try {
return acksString.trim().equalsIgnoreCase("all") ? -1 :
Integer.parseInt(acksString.trim());
} catch (NumberFormatException e) {
throw new ConfigException("Invalid configuration value for 'acks':
" + acksString);
}
}
{code}
also some new KIPs, e.g. KIP-81 propose constraints among different values,
so it would be good not to scatter them around.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)