[ https://issues.apache.org/jira/browse/KAFKA-7509?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17507833#comment-17507833 ]
Matthias J. Sax commented on KAFKA-7509: ---------------------------------------- Personally, I think the best way would be to tackle this with a KIP across the board: not just for connect. The idea would be to allow user to add a prefix to the config they want to "forward" to "inner" classes. For example, if an interceptor needs a config, we could use `interceptor.foo.bar` instead of `foo.bar` – this way, we know that the consumer/producer can ignore this config, and when we forward the config into the interceptor, we actually remove `interceptor` prefix. The `interceptor` prefix would of course be quite specific (and it only works because interceptors are a Kafka concept). We could also generalize it using a prefix `forward.`. In Kafka Streams, we are already using `main.consumer.`, `restore.consumer.`, and `producer.` as prefix to allow users to configure individual client and to avoid that `StreamsConfig` logs warnings about "unknown" client config. The advantage of the prefix approach is, that is it much more fine-grained compared to a config, and it can also be applies recursively. For example, in Kafka Streams we use an `AdminClient` inside the `ConsumerClient`. If we want to configure the admin client, we can provide `main.consumer.forward.actualAdminConfigName` and avoid that the consumer logs a warning about an unknown client. > Kafka Connect logs unnecessary warnings about unused configurations > ------------------------------------------------------------------- > > Key: KAFKA-7509 > URL: https://issues.apache.org/jira/browse/KAFKA-7509 > Project: Kafka > Issue Type: Improvement > Components: clients, KafkaConnect > Affects Versions: 0.10.2.0 > Reporter: Randall Hauch > Priority: Major > > When running Connect, the logs contain quite a few warnings about "The > configuration '{}' was supplied but isn't a known config." This occurs when > Connect creates producers, consumers, and admin clients, because the > AbstractConfig is logging unused configuration properties upon construction. > It's complicated by the fact that the Producer, Consumer, and AdminClient all > create their own AbstractConfig instances within the constructor, so we can't > even call its {{ignore(String key)}} method. > See also KAFKA-6793 for a similar issue with Streams. > There are no arguments in the Producer, Consumer, or AdminClient constructors > to control whether the configs log these warnings, so a simpler workaround > is to only pass those configuration properties to the Producer, Consumer, and > AdminClient that the ProducerConfig, ConsumerConfig, and AdminClientConfig > configdefs know about. -- This message was sent by Atlassian Jira (v8.20.1#820001)