...
Client quotas are stored in these znodes as well. However, all configs that are not quota configs are filtered out when constructing a DescribeClientQuotasResponse
. Similar to this, all configs that are not dynamic client configs will be filtered out when constructing a DescribeConfigsResponse
for the CLIENT
resource type. The value for each key will also be validated against the allowed values for that key. For example, if we try the user tries to set acks=2, an InvalidRequest error code will be sent back.
...
Introducing new entity types for
kafka-configs.sh
that producers and consumers can associate themselves with. This would make the tool more cumbersome to use and it is most intuitive that client configurations be dynamically altered with theclients
entity type.Use the <user/client-id> hierarchy implemented for client quotas in KIP-55 and extended for the admin client in KIP-546. If we there were already had APIs for non-quota configs where this hierarchy existed, it would have been worthwhile to allow this for consistency. However, quota APIs are different and quotas are inherently hierarchical, so it seems reasonable to use a different approach here.
Sending user-provided client configuration values to the broker on startup. The user-provided client configurations are not needed by the broker to send back dynamic configurations.
DescribeConfigsRequest
does not have a field for config values so a new message format would need to be created.Making certain client configurations topic level configurations on the broker.
The semantic for the ProduceRequest API would be undefined since the producer would not receive a response with an offset for the ProduceRequests with
acks=0
.If this were implemented for
acks
there would also be quite a bit of overhead associated with extra round trips since the RecordAccumulator sends batches that may contain records from multiple topics. If these topics have differentacks
configurations the records would need to be sent in different batches based on theacks
value.For example, if a producer is consistently producing to 2 different topics and one is configured as
acks=0
while the other isacks=-1
. This would require twice the amount of round trips to produce the same number of messages.