...
Code Block | ||
---|---|---|
| ||
public class ResolveClientQuotasOptions extends AbstractOptions<ResolveClientQuotasOptions> { /** * Whether to exclude the list of overridden values for every quota type in the result. */ public ResolveClientQuotasOptions setOmitOverriddenValues(boolean omitOverriddenValues); } /** * The result of the {@link Admin#ResolveClientQuotas(Collection<QuotaEntity>, ResolveClientQuotasOptions)} call. */ public class ResolveClientQuotasResult { /** * Information about a specific quota configuration entry. */ public class Entry { /** * @param source the entity source for the value * @param value the non-null value */ public Entry(QuotaEntity source, Long value); } /** * Information about the value for a quota type. */ public class Value { /** NOTE: We maintain a `Value` class because additional *information @parammay entrybe the quota entryadded, e.g., * * @param overriddenEntries alla valueslist that areof overridden due to being lower inentries. */ public class Value { /** * @param specificity,entry orthe null if not requestedquota entry */ public Value(Entry entry, List<Entry> overriddenEntries); } /** * Maps a collection of entities to their effective quota values. * * @param config the quota configuration for the requested entities */ public ResolveClientQuotasResult(Map<QuotaEntity, KafkaFuture<Map<String, Value>>> config); /** * Returns a map from quota entity to a future which can be used to check the status of the operation. */ public Map<QuotaEntity, KafkaFuture<Map<String, Value>>> config(); /** * Returns a future which succeeds only if all quota descriptions succeed. */ public KafkaFuture<Void> all(); } public interface Admin extends AutoCloseable { ... /** * Describes the effective quotas for the provided entities. * * @param entities the entities to describe the effective quotas for * @param options the options to use * @return the effective quotas for the entities */ ResolveClientQuotasResult resolveClientQuotas(Collection<QuotaEntity> entities, ResolveClientQuotasOptions options); } |
...
Entity specification flags (common to all):--names
: Comma-separated list of type=name pairs, e.g. "user=some-user,client-id=some-client-id"--defaults
: Comma-separated list of entity types with the default name, e.g. "defaults=user,client-id" (Note a separate flag is necessary since names are opaque.)
Exclusive to --list
:--prefix
: Comma-separated prefix=name pairs, e.g. "user=test-"describe
: None.
Exclusive to --
describeresolve
: None.
Exclusive to --alter
:--add
: Comma-separated list of entries to add or update to the configuration, in format "name=value".--delete
: Comma-separated list of entries to remove from the configuration, in format "name".--validate-only
: If set, validates the alteration but doesn't perform it.
...
Code Block |
---|
$./bin/kafka-client-quotas.sh --bootstrap-server localhost:9092 --resolve \
--names=user=user-two,client-id=my-client
consumer_byte_rate=2000000 {user=user-two, client-id=my-client}
producer_byte_rate=500000 {user=<default>, client-id=my-client}
|
Alter:
Code Block |
---|
$./bin/kafka-client-quotas.sh --bootstrap-server localhost:9092 --alter \ --names=client-id=my-client --defaults=user \ --add=consumer_byte_rate=2000000 \ --delete=producer_byte_rate <no output on success> $./bin/kafka-client-quotas.sh --bootstrap-server localhost:9092 --describe \ --names=client-id=my-client --defaults=user {user=<default>, client-id=my-client} consumer_byte_rate=2000000 |
...